Removal of stale Fortran kernels
authorErik Lindahl <erik@kth.se>
Fri, 9 Nov 2012 10:20:27 +0000 (11:20 +0100)
committerErik Lindahl <erik@kth.se>
Fri, 9 Nov 2012 10:20:27 +0000 (11:20 +0100)
These Fortran kernels are no longer used in the code.
Based on benchmarks, we will decide whether to provide
new generated Fortran kernels (possibly for ia64,
Power and/or BlueGene architectures) before the final
Gromacs 4.6 release. I would prefer to keep the Fortran
detection code in CMake until we make that call.

Change-Id: Ia73fbfe968983289bba8896f8b84fdfb262d9105

408 files changed:
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel010.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel020.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel030.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel100.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel101.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel102.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel103.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel104.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel110.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel111.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel112.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel113.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel114.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel120.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel121.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel122.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel123.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel124.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel130.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel131.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel132.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel133.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel134.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel200.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel201.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel202.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel203.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel204.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel210.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel211.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel212.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel213.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel214.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel220.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel221.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel222.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel223.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel224.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel230.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel231.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel232.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel233.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel234.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel300.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel301.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel302.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel303.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel304.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel310.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel311.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel312.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel313.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel314.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel320.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel321.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel322.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel323.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel324.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel330.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel331.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel332.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel333.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel334.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel400.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel410.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel420.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel430.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel010_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel010_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel020_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel020_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel030_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel030_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel100_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel100_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel101_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel101_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel102_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel102_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel103_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel103_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel104_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel104_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel110_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel110_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel111_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel111_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel112_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel112_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel113_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel113_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel114_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel114_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel120_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel120_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel121_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel121_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel122_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel122_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel123_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel123_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel124_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel124_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel130_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel130_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel131_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel131_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel132_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel132_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel133_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel133_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel134_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel134_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel200_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel200_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel201_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel201_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel202_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel202_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel203_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel203_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel204_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel204_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel210_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel210_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel211_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel211_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel212_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel212_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel213_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel213_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel214_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel214_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel220_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel220_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel221_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel221_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel222_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel222_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel223_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel223_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel224_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel224_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel230_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel230_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel231_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel231_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel232_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel232_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel233_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel233_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel234_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel234_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel300_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel300_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel301_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel301_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel302_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel302_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel303_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel303_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel304_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel304_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel310_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel310_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel311_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel311_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel312_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel312_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel313_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel313_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel314_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel314_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel320_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel320_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel321_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel321_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel322_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel322_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel323_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel323_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel324_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel324_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel330_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel330_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel331_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel331_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel332_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel332_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel333_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel333_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel334_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel334_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel400_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel400_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel410_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel410_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel420_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel420_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel430_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel430_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel_f77_double.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel_f77_double.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel_f77sync.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel010.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel020.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel030.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel100.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel101.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel102.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel103.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel104.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel110.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel111.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel112.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel113.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel114.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel120.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel121.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel122.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel123.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel124.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel130.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel131.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel132.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel133.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel134.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel200.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel201.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel202.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel203.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel204.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel210.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel211.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel212.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel213.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel214.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel220.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel221.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel222.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel223.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel224.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel230.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel231.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel232.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel233.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel234.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel300.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel301.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel302.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel303.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel304.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel310.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel311.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel312.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel313.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel314.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel320.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel321.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel322.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel323.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel324.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel330.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel331.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel332.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel333.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel334.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel400.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel410.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel420.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel430.f [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel010_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel010_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel020_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel020_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel030_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel030_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel100_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel100_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel101_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel101_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel102_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel102_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel103_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel103_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel104_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel104_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel110_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel110_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel111_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel111_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel112_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel112_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel113_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel113_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel114_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel114_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel120_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel120_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel121_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel121_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel122_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel122_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel123_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel123_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel124_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel124_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel130_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel130_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel131_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel131_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel132_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel132_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel133_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel133_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel134_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel134_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel200_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel200_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel201_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel201_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel202_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel202_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel203_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel203_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel204_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel204_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel210_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel210_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel211_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel211_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel212_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel212_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel213_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel213_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel214_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel214_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel220_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel220_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel221_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel221_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel222_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel222_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel223_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel223_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel224_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel224_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel230_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel230_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel231_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel231_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel232_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel232_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel233_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel233_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel234_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel234_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel300_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel300_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel301_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel301_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel302_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel302_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel303_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel303_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel304_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel304_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel310_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel310_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel311_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel311_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel312_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel312_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel313_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel313_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel314_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel314_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel320_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel320_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel321_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel321_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel322_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel322_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel323_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel323_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel324_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel324_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel330_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel330_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel331_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel331_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel332_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel332_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel333_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel333_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel334_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel334_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel400_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel400_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel410_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel410_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel420_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel420_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel430_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel430_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel_f77_single.c [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel_f77_single.h [deleted file]
src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel_f77sync.c [deleted file]

diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel010.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel010.f
deleted file mode 100644 (file)
index e5dc086..0000000
+++ /dev/null
@@ -1,385 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel010
-C Coulomb interaction:     Not calculated
-C VdW interaction:         Lennard-Jones
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77dkernel010(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11
-      real*8        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 33 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel010nf
-C Coulomb interaction:     Not calculated
-C VdW interaction:         Lennard-Jones
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77dkernel010nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        ix1,iy1,iz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11
-      real*8        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Inner loop uses 19 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 4 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel020.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel020.f
deleted file mode 100644 (file)
index 578147f..0000000
+++ /dev/null
@@ -1,391 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel020
-C Coulomb interaction:     Not calculated
-C VdW interaction:         Buckingham
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77dkernel020(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,cexp1,cexp2
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          nti              = 3*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 66 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel020nf
-C Coulomb interaction:     Not calculated
-C VdW interaction:         Buckingham
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77dkernel020nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,cexp1,cexp2
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          nti              = 3*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Inner loop uses 53 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 4 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel030.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel030.f
deleted file mode 100644 (file)
index 51a7361..0000000
+++ /dev/null
@@ -1,441 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel030
-C Coulomb interaction:     Not calculated
-C VdW interaction:         Tabulated
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77dkernel030(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijD,fijR
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 59 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel030nf
-C Coulomb interaction:     Not calculated
-C VdW interaction:         Tabulated
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77dkernel030nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        ix1,iy1,iz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Inner loop uses 38 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 4 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel100.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel100.f
deleted file mode 100644 (file)
index 510781b..0000000
+++ /dev/null
@@ -1,369 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel100
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Not calculated
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77dkernel100(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 32 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel100nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Not calculated
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77dkernel100nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      real*8        ix1,iy1,iz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 21 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 5 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel101.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel101.f
deleted file mode 100644 (file)
index f2715b9..0000000
+++ /dev/null
@@ -1,491 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel101
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Not calculated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel101(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 95 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel101nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Not calculated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel101nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 62 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel102.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel102.f
deleted file mode 100644 (file)
index af6f6eb..0000000
+++ /dev/null
@@ -1,769 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel102
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Not calculated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel102(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv12*rinv12   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv12       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv13*rinv13   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv13       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 279 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel102nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Not calculated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel102nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        qq,vcoul,vctot
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv12       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv13       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 180 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel103.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel103.f
deleted file mode 100644 (file)
index 94900cf..0000000
+++ /dev/null
@@ -1,491 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel103
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Not calculated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel103(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-            rinvsq           = rinv41*rinv41   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv41       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 95 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel103nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Not calculated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel103nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx1,jy1,jz1
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv41       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 62 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel104.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel104.f
deleted file mode 100644 (file)
index 7046c52..0000000
+++ /dev/null
@@ -1,769 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel104
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Not calculated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel104(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv24*rinv24   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv24       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv34*rinv34   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv34       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv42*rinv42   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv42       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv43*rinv43   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv43       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-            rinvsq           = rinv44*rinv44   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv44       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 279 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel104nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Not calculated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel104nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        qq,vcoul,vctot
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        jx4,jy4,jz4
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv24       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv34       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv42       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv43       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv44       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 180 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel110.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel110.f
deleted file mode 100644 (file)
index 419d60d..0000000
+++ /dev/null
@@ -1,408 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel110
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Lennard-Jones
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77dkernel110(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (vcoul+12.0*Vvdw12-6.0*Vvdw6)
-     &  *rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 43 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 12 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel110nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Lennard-Jones
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77dkernel110nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        ix1,iy1,iz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Inner loop uses 29 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel111.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel111.f
deleted file mode 100644 (file)
index 538be2d..0000000
+++ /dev/null
@@ -1,530 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel111
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Lennard-Jones
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel111(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (vcoul+12.0*Vvdw12-6.0*Vvdw6)
-     &  *rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 106 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel111nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Lennard-Jones
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel111nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 70 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel112.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel112.f
deleted file mode 100644 (file)
index 67f900d..0000000
+++ /dev/null
@@ -1,804 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel112
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel112(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (vcoul+12.0*Vvdw12-6.0*Vvdw6)
-     &  *rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv12*rinv12   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv12       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv13*rinv13   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv13       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 290 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel112nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel112nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv12       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv13       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 188 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel113.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel113.f
deleted file mode 100644 (file)
index 5f98ae5..0000000
+++ /dev/null
@@ -1,574 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel113
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Lennard-Jones
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel113(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx11,dy11,dz11,rsq11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-            rinvsq           = rinv41*rinv41   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv41       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 128 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel113nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Lennard-Jones
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel113nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv41       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 81 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel114.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel114.f
deleted file mode 100644 (file)
index 89e2f5d..0000000
+++ /dev/null
@@ -1,856 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel114
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel114(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*8        dx11,dy11,dz11,rsq11
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv24*rinv24   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv24       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv34*rinv34   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv34       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv42*rinv42   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv42       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv43*rinv43   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv43       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-            rinvsq           = rinv44*rinv44   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv44       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 312 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel114nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel114nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        jx4,jy4,jz4
-      real*8        dx11,dy11,dz11,rsq11
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv24       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv34       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv42       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv43       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv44       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 199 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel120.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel120.f
deleted file mode 100644 (file)
index ab344c7..0000000
+++ /dev/null
@@ -1,411 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel120
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Buckingham
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77dkernel120(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,cexp1,cexp2
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 3*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (vcoul+br*Vvdwexp-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 69 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 12 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel120nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Buckingham
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77dkernel120nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,cexp1,cexp2
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 3*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Inner loop uses 56 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel121.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel121.f
deleted file mode 100644 (file)
index d5095d4..0000000
+++ /dev/null
@@ -1,533 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel121
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Buckingham
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel121(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (vcoul+br*Vvdwexp-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 132 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel121nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Buckingham
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel121nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 97 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel122.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel122.f
deleted file mode 100644 (file)
index a3cec75..0000000
+++ /dev/null
@@ -1,807 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel122
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Buckingham
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel122(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (vcoul+br*Vvdwexp-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv12*rinv12   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv12       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv13*rinv13   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv13       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 316 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel122nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Buckingham
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel122nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv12       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv13       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 215 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel123.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel123.f
deleted file mode 100644 (file)
index 8da0148..0000000
+++ /dev/null
@@ -1,580 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel123
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Buckingham
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel123(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-            rinvsq           = rinv41*rinv41   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv41       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 161 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel123nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Buckingham
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel123nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv41       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 115 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel124.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel124.f
deleted file mode 100644 (file)
index 889abb8..0000000
+++ /dev/null
@@ -1,862 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel124
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Buckingham
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel124(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv24*rinv24   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv24       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv34*rinv34   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv34       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv42*rinv42   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv42       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv43*rinv43   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv43       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-            rinvsq           = rinv44*rinv44   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv44       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 345 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel124nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Buckingham
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel124nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        jx4,jy4,jz4
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv24       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv34       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv42       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv43       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv44       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 233 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel130.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel130.f
deleted file mode 100644 (file)
index ca18cee..0000000
+++ /dev/null
@@ -1,464 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel130
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Tabulated
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77dkernel130(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijD,fijR
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = (vcoul)*rinvsq-((fijD+fijR)
-     &  *tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 64 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 12 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel130nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Tabulated
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77dkernel130nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        ix1,iy1,iz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Inner loop uses 41 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel131.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel131.f
deleted file mode 100644 (file)
index 4311542..0000000
+++ /dev/null
@@ -1,586 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel131
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Tabulated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel131(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijD,fijR
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = (vcoul)*rinvsq-((fijD+fijR)
-     &  *tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 127 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel131nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Tabulated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel131nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 82 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel132.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel132.f
deleted file mode 100644 (file)
index 5c9fd50..0000000
+++ /dev/null
@@ -1,860 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel132
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Tabulated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel132(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijD,fijR
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = (vcoul)*rinvsq-((fijD+fijR)
-     &  *tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv12*rinv12   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv12       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv13*rinv13   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv13       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 311 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel132nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Tabulated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel132nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv12       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv13       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 200 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel133.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel133.f
deleted file mode 100644 (file)
index a807e76..0000000
+++ /dev/null
@@ -1,631 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel133
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Tabulated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel133(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijD,fijR
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-            rinvsq           = rinv41*rinv41   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv41       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 154 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel133nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Tabulated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel133nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv41       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 100 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel134.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel134.f
deleted file mode 100644 (file)
index effafbd..0000000
+++ /dev/null
@@ -1,913 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel134
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Tabulated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel134(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijD,fijR
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv24*rinv24   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv24       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv34*rinv34   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv34       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv42*rinv42   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv42       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv43*rinv43   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv43       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-            rinvsq           = rinv44*rinv44   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv44       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 338 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel134nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Tabulated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel134nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        jx4,jy4,jz4
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv24       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv34       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv42       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv43       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv44       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 218 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel200.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel200.f
deleted file mode 100644 (file)
index 9e10d71..0000000
+++ /dev/null
@@ -1,373 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel200
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Not calculated
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77dkernel200(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      real*8        krsq
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv11-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 38 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel200nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Not calculated
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77dkernel200nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      real*8        krsq
-      real*8        ix1,iy1,iz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 24 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 5 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel201.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel201.f
deleted file mode 100644 (file)
index 49b1837..0000000
+++ /dev/null
@@ -1,499 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel201
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Not calculated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel201(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      real*8        krsq
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv11-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 113 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel201nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Not calculated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel201nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      real*8        krsq
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 71 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel202.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel202.f
deleted file mode 100644 (file)
index 34f0450..0000000
+++ /dev/null
@@ -1,789 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel202
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Not calculated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel202(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      real*8        krsq
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv11-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv12*rinv12   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq12       
-            vcoul            = qq*(rinv12+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv12-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv13*rinv13   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq13       
-            vcoul            = qq*(rinv13+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv13-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv22-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv23-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv32-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv33-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 333 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel202nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Not calculated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel202nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        qq,vcoul,vctot
-      real*8        krsq
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq12       
-            vcoul            = qq*(rinv12+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq13       
-            vcoul            = qq*(rinv13+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 207 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel203.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel203.f
deleted file mode 100644 (file)
index 1ff714a..0000000
+++ /dev/null
@@ -1,499 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel203
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Not calculated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel203(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      real*8        krsq
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-            rinvsq           = rinv41*rinv41   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq41       
-            vcoul            = qq*(rinv41+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv41-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 113 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel203nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Not calculated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel203nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      real*8        krsq
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx1,jy1,jz1
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq41       
-            vcoul            = qq*(rinv41+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 71 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel204.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel204.f
deleted file mode 100644 (file)
index 19ceeac..0000000
+++ /dev/null
@@ -1,789 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel204
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Not calculated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel204(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      real*8        krsq
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv22-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv23-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv24*rinv24   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq24       
-            vcoul            = qq*(rinv24+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv24-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv32-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv33-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv34*rinv34   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq34       
-            vcoul            = qq*(rinv34+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv34-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv42*rinv42   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq42       
-            vcoul            = qq*(rinv42+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv42-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv43*rinv43   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq43       
-            vcoul            = qq*(rinv43+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv43-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-            rinvsq           = rinv44*rinv44   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq44       
-            vcoul            = qq*(rinv44+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv44-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 333 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel204nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Not calculated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel204nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        qq,vcoul,vctot
-      real*8        krsq
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        jx4,jy4,jz4
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq24       
-            vcoul            = qq*(rinv24+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq34       
-            vcoul            = qq*(rinv34+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq42       
-            vcoul            = qq*(rinv42+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq43       
-            vcoul            = qq*(rinv43+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq44       
-            vcoul            = qq*(rinv44+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 207 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel210.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel210.f
deleted file mode 100644 (file)
index 5734b6e..0000000
+++ /dev/null
@@ -1,412 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel210
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Lennard-Jones
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77dkernel210(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        krsq
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (qq*(rinv11-2.0*krsq)+12.0*Vvdw12
-     &  -6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 49 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 12 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel210nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Lennard-Jones
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77dkernel210nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        krsq
-      real*8        ix1,iy1,iz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Inner loop uses 32 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel211.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel211.f
deleted file mode 100644 (file)
index 0b014f0..0000000
+++ /dev/null
@@ -1,538 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel211
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Lennard-Jones
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel211(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        krsq
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (qq*(rinv11-2.0*krsq)+12.0*Vvdw12
-     &  -6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 124 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel211nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Lennard-Jones
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel211nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        krsq
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 79 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel212.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel212.f
deleted file mode 100644 (file)
index 0799843..0000000
+++ /dev/null
@@ -1,824 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel212
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel212(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        krsq
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (qq*(rinv11-2.0*krsq)+12.0*Vvdw12
-     &  -6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv12*rinv12   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq12       
-            vcoul            = qq*(rinv12+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv12-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv13*rinv13   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq13       
-            vcoul            = qq*(rinv13+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv13-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv22-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv23-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv32-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv33-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 344 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel212nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel212nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        krsq
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq12       
-            vcoul            = qq*(rinv12+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq13       
-            vcoul            = qq*(rinv13+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 215 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel213.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel213.f
deleted file mode 100644 (file)
index e101b56..0000000
+++ /dev/null
@@ -1,582 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel213
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Lennard-Jones
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel213(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        krsq
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx11,dy11,dz11,rsq11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-            rinvsq           = rinv41*rinv41   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq41       
-            vcoul            = qq*(rinv41+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv41-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 146 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel213nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Lennard-Jones
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel213nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        krsq
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq41       
-            vcoul            = qq*(rinv41+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 90 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel214.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel214.f
deleted file mode 100644 (file)
index 9c28837..0000000
+++ /dev/null
@@ -1,876 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel214
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel214(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        krsq
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*8        dx11,dy11,dz11,rsq11
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv22-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv23-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv24*rinv24   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq24       
-            vcoul            = qq*(rinv24+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv24-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv32-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv33-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv34*rinv34   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq34       
-            vcoul            = qq*(rinv34+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv34-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv42*rinv42   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq42       
-            vcoul            = qq*(rinv42+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv42-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv43*rinv43   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq43       
-            vcoul            = qq*(rinv43+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv43-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-            rinvsq           = rinv44*rinv44   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq44       
-            vcoul            = qq*(rinv44+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv44-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 366 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel214nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel214nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        krsq
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        jx4,jy4,jz4
-      real*8        dx11,dy11,dz11,rsq11
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq24       
-            vcoul            = qq*(rinv24+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq34       
-            vcoul            = qq*(rinv34+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq42       
-            vcoul            = qq*(rinv42+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq43       
-            vcoul            = qq*(rinv43+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq44       
-            vcoul            = qq*(rinv44+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 226 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel220.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel220.f
deleted file mode 100644 (file)
index 0197887..0000000
+++ /dev/null
@@ -1,416 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel220
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Buckingham
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77dkernel220(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        krsq
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,cexp1,cexp2
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 3*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (qq*(rinv11-2.0*krsq)+br*Vvdwexp
-     &  -6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 75 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 12 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel220nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Buckingham
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77dkernel220nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        krsq
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,cexp1,cexp2
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 3*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Inner loop uses 59 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel221.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel221.f
deleted file mode 100644 (file)
index cae20c1..0000000
+++ /dev/null
@@ -1,542 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel221
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Buckingham
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel221(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        krsq
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (qq*(rinv11-2.0*krsq)+br*Vvdwexp
-     &  -6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 150 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel221nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Buckingham
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel221nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        krsq
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 106 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel222.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel222.f
deleted file mode 100644 (file)
index c8fef4f..0000000
+++ /dev/null
@@ -1,828 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel222
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Buckingham
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel222(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        krsq
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (qq*(rinv11-2.0*krsq)+br*Vvdwexp
-     &  -6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv12*rinv12   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq12       
-            vcoul            = qq*(rinv12+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv12-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv13*rinv13   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq13       
-            vcoul            = qq*(rinv13+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv13-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv22-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv23-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv32-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv33-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 370 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel222nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Buckingham
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel222nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        krsq
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq12       
-            vcoul            = qq*(rinv12+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq13       
-            vcoul            = qq*(rinv13+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 242 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel223.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel223.f
deleted file mode 100644 (file)
index 2a3a812..0000000
+++ /dev/null
@@ -1,588 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel223
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Buckingham
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel223(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        krsq
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-            rinvsq           = rinv41*rinv41   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq41       
-            vcoul            = qq*(rinv41+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv41-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 179 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel223nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Buckingham
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel223nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        krsq
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq41       
-            vcoul            = qq*(rinv41+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 124 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel224.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel224.f
deleted file mode 100644 (file)
index 0a03181..0000000
+++ /dev/null
@@ -1,882 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel224
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Buckingham
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel224(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        krsq
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv22-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv23-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv24*rinv24   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq24       
-            vcoul            = qq*(rinv24+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv24-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv32-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv33-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv34*rinv34   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq34       
-            vcoul            = qq*(rinv34+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv34-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv42*rinv42   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq42       
-            vcoul            = qq*(rinv42+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv42-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv43*rinv43   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq43       
-            vcoul            = qq*(rinv43+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv43-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-            rinvsq           = rinv44*rinv44   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq44       
-            vcoul            = qq*(rinv44+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv44-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 399 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel224nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Buckingham
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel224nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        krsq
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        jx4,jy4,jz4
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq24       
-            vcoul            = qq*(rinv24+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq34       
-            vcoul            = qq*(rinv34+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq42       
-            vcoul            = qq*(rinv42+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq43       
-            vcoul            = qq*(rinv43+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq44       
-            vcoul            = qq*(rinv44+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 260 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel230.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel230.f
deleted file mode 100644 (file)
index b742935..0000000
+++ /dev/null
@@ -1,468 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel230
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Tabulated
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77dkernel230(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijD,fijR
-      real*8        krsq
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = (qq*(rinv11-2.0*krsq))*rinvsq
-     &  -((fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 70 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 12 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel230nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Tabulated
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77dkernel230nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        krsq
-      real*8        ix1,iy1,iz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Inner loop uses 44 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel231.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel231.f
deleted file mode 100644 (file)
index 2702638..0000000
+++ /dev/null
@@ -1,594 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel231
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Tabulated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel231(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijD,fijR
-      real*8        krsq
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = (qq*(rinv11-2.0*krsq))*rinvsq
-     &  -((fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 145 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel231nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Tabulated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel231nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        krsq
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 91 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel232.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel232.f
deleted file mode 100644 (file)
index 5337fee..0000000
+++ /dev/null
@@ -1,880 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel232
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Tabulated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel232(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijD,fijR
-      real*8        krsq
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = (qq*(rinv11-2.0*krsq))*rinvsq
-     &  -((fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv12*rinv12   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq12       
-            vcoul            = qq*(rinv12+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv12-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv13*rinv13   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq13       
-            vcoul            = qq*(rinv13+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv13-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv22-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv23-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv32-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv33-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 365 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel232nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Tabulated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel232nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        krsq
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq12       
-            vcoul            = qq*(rinv12+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq13       
-            vcoul            = qq*(rinv13+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 227 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel233.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel233.f
deleted file mode 100644 (file)
index da534f9..0000000
+++ /dev/null
@@ -1,639 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel233
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Tabulated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel233(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijD,fijR
-      real*8        krsq
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-            rinvsq           = rinv41*rinv41   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq41       
-            vcoul            = qq*(rinv41+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv41-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 172 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel233nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Tabulated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel233nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        krsq
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq41       
-            vcoul            = qq*(rinv41+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 109 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel234.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel234.f
deleted file mode 100644 (file)
index b07ae60..0000000
+++ /dev/null
@@ -1,933 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel234
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Tabulated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel234(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijD,fijR
-      real*8        krsq
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv22-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv23-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv24*rinv24   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq24       
-            vcoul            = qq*(rinv24+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv24-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv32-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv33-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv34*rinv34   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq34       
-            vcoul            = qq*(rinv34+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv34-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv42*rinv42   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq42       
-            vcoul            = qq*(rinv42+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv42-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv43*rinv43   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq43       
-            vcoul            = qq*(rinv43+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv43-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-            rinvsq           = rinv44*rinv44   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq44       
-            vcoul            = qq*(rinv44+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv44-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 392 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel234nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Tabulated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel234nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        krsq
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        jx4,jy4,jz4
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq24       
-            vcoul            = qq*(rinv24+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq34       
-            vcoul            = qq*(rinv34+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq42       
-            vcoul            = qq*(rinv42+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq43       
-            vcoul            = qq*(rinv43+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq44       
-            vcoul            = qq*(rinv44+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 245 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel300.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel300.f
deleted file mode 100644 (file)
index c9f82f8..0000000
+++ /dev/null
@@ -1,409 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel300
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Not calculated
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77dkernel300(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 47 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel300nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Not calculated
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77dkernel300nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        ix1,iy1,iz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 31 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 5 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel301.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel301.f
deleted file mode 100644 (file)
index edce13d..0000000
+++ /dev/null
@@ -1,597 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel301
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Not calculated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel301(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 140 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel301nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Not calculated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel301nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 92 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel302.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel302.f
deleted file mode 100644 (file)
index 36adcc3..0000000
+++ /dev/null
@@ -1,1073 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel302
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Not calculated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel302(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        qq,vcoul,vctot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq12*rinv12    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv12
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq13*rinv13    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv13
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv22
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv23
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv32
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv33
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 414 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel302nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Not calculated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel302nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        qq,vcoul,vctot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq12*rinv12    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq13*rinv13    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 270 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel303.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel303.f
deleted file mode 100644 (file)
index 0d791b4..0000000
+++ /dev/null
@@ -1,597 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel303
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Not calculated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel303(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Calculate table index
-            r                = rsq41*rinv41    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv41
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 140 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel303nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Not calculated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel303nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx1,jy1,jz1
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Calculate table index
-            r                = rsq41*rinv41    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 92 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel304.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel304.f
deleted file mode 100644 (file)
index f32c746..0000000
+++ /dev/null
@@ -1,1073 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel304
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Not calculated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel304(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        qq,vcoul,vctot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv22
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv23
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq24*rinv24    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv24
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv32
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv33
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq34*rinv34    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv34
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq42*rinv42    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv42
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq43*rinv43    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv43
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Calculate table index
-            r                = rsq44*rinv44    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv44
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 414 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel304nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Not calculated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel304nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        qq,vcoul,vctot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        jx4,jy4,jz4
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq24*rinv24    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq34*rinv34    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq42*rinv42    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq43*rinv43    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Calculate table index
-            r                = rsq44*rinv44    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 270 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel310.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel310.f
deleted file mode 100644 (file)
index 0134a13..0000000
+++ /dev/null
@@ -1,450 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel310
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Lennard-Jones
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77dkernel310(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-     &  -((fijC)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 60 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 12 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel310nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Lennard-Jones
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77dkernel310nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        ix1,iy1,iz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Inner loop uses 39 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel311.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel311.f
deleted file mode 100644 (file)
index 2a0ca51..0000000
+++ /dev/null
@@ -1,638 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel311
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Lennard-Jones
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel311(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-     &  -((fijC)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 153 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel311nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Lennard-Jones
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel311nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 100 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel312.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel312.f
deleted file mode 100644 (file)
index e41469a..0000000
+++ /dev/null
@@ -1,1110 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel312
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel312(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-     &  -((fijC)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq12*rinv12    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv12
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq13*rinv13    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv13
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv22
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv23
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv32
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv33
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 427 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel312nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel312nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq12*rinv12    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq13*rinv13    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 278 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel313.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel313.f
deleted file mode 100644 (file)
index cd73635..0000000
+++ /dev/null
@@ -1,681 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel313
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Lennard-Jones
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel313(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx11,dy11,dz11,rsq11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Calculate table index
-            r                = rsq41*rinv41    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv41
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 173 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel313nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Lennard-Jones
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel313nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Calculate table index
-            r                = rsq41*rinv41    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 111 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel314.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel314.f
deleted file mode 100644 (file)
index f91fb75..0000000
+++ /dev/null
@@ -1,1161 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel314
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel314(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*8        dx11,dy11,dz11,rsq11
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv22
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv23
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq24*rinv24    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv24
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv32
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv33
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq34*rinv34    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv34
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq42*rinv42    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv42
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq43*rinv43    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv43
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Calculate table index
-            r                = rsq44*rinv44    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv44
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 447 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel314nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel314nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        jx4,jy4,jz4
-      real*8        dx11,dy11,dz11,rsq11
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq24*rinv24    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq34*rinv34    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq42*rinv42    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq43*rinv43    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Calculate table index
-            r                = rsq44*rinv44    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 289 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel320.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel320.f
deleted file mode 100644 (file)
index e28ea71..0000000
+++ /dev/null
@@ -1,454 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel320
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Buckingham
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77dkernel320(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,cexp1,cexp2
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 3*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-     &  -((fijC)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 86 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 12 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel320nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Buckingham
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77dkernel320nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,cexp1,cexp2
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 3*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Inner loop uses 66 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel321.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel321.f
deleted file mode 100644 (file)
index 8a2c31a..0000000
+++ /dev/null
@@ -1,642 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel321
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Buckingham
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel321(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-     &  -((fijC)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 179 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel321nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Buckingham
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel321nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 127 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel322.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel322.f
deleted file mode 100644 (file)
index 3f3ab3a..0000000
+++ /dev/null
@@ -1,1114 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel322
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Buckingham
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel322(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-     &  -((fijC)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq12*rinv12    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv12
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq13*rinv13    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv13
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv22
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv23
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv32
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv33
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 453 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel322nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Buckingham
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel322nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq12*rinv12    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq13*rinv13    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 305 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel323.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel323.f
deleted file mode 100644 (file)
index 4462386..0000000
+++ /dev/null
@@ -1,687 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel323
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Buckingham
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel323(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Calculate table index
-            r                = rsq41*rinv41    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv41
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 206 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel323nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Buckingham
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel323nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Calculate table index
-            r                = rsq41*rinv41    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 145 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel324.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel324.f
deleted file mode 100644 (file)
index 4ef069d..0000000
+++ /dev/null
@@ -1,1167 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel324
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Buckingham
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel324(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv22
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv23
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq24*rinv24    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv24
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv32
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv33
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq34*rinv34    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv34
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq42*rinv42    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv42
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq43*rinv43    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv43
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Calculate table index
-            r                = rsq44*rinv44    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv44
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 480 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel324nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Buckingham
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel324nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        jx4,jy4,jz4
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-      real*8        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq24*rinv24    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq34*rinv34    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq42*rinv42    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq43*rinv43    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Calculate table index
-            r                = rsq44*rinv44    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 323 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel330.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel330.f
deleted file mode 100644 (file)
index 6cae7be..0000000
+++ /dev/null
@@ -1,478 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel330
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Tabulated
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77dkernel330(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        fijD,fijR
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-
-C          Tabulated VdW interaction - dispersion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijC+fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 73 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 12 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel330nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Tabulated
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77dkernel330nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        ix1,iy1,iz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Tabulated VdW interaction - dispersion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Inner loop uses 47 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel331.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel331.f
deleted file mode 100644 (file)
index a10322e..0000000
+++ /dev/null
@@ -1,666 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel331
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Tabulated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel331(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        fijD,fijR
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-
-C          Tabulated VdW interaction - dispersion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijC+fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 166 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel331nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Tabulated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel331nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        qO,qH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Tabulated VdW interaction - dispersion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 108 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel332.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel332.f
deleted file mode 100644 (file)
index 43cf34a..0000000
+++ /dev/null
@@ -1,1138 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel332
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Tabulated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel332(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        fijD,fijR
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-
-C          Tabulated VdW interaction - dispersion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijC+fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq12*rinv12    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv12
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq13*rinv13    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv13
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv22
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv23
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv32
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv33
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 440 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel332nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Tabulated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel332nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx12,dy12,dz12,rsq12,rinv12
-      real*8        dx13,dy13,dz13,rsq13,rinv13
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        qO,qH,qqOO,qqOH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Tabulated VdW interaction - dispersion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq12*rinv12    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq13*rinv13    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 286 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel333.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel333.f
deleted file mode 100644 (file)
index b9d2ada..0000000
+++ /dev/null
@@ -1,732 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel333
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Tabulated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77dkernel333(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        fijD,fijR
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated VdW interaction - dispersion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Calculate table index
-            r                = rsq41*rinv41    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv41
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 199 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel333nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Tabulated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77dkernel333nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        jq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx21,dy21,dz21,rsq21,rinv21
-      real*8        dx31,dy31,dz31,rsq31,rinv31
-      real*8        dx41,dy41,dz41,rsq41,rinv41
-      real*8        qH,qM
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated VdW interaction - dispersion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Calculate table index
-            r                = rsq41*rinv41    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 130 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel334.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel334.f
deleted file mode 100644 (file)
index 7b37cf2..0000000
+++ /dev/null
@@ -1,1212 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel334
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Tabulated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77dkernel334(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        fijD,fijR
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*8        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*8        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*8        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*8        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated VdW interaction - dispersion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv22
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv23
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq24*rinv24    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv24
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv32
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv33
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq34*rinv34    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv34
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq42*rinv42    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv42
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq43*rinv43    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv43
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Calculate table index
-            r                = rsq44*rinv44    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv44
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 473 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel334nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Tabulated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77dkernel334nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        qq,vcoul,vctot
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        ix1,iy1,iz1
-      real*8        ix2,iy2,iz2
-      real*8        ix3,iy3,iz3
-      real*8        ix4,iy4,iz4
-      real*8        jx1,jy1,jz1
-      real*8        jx2,jy2,jz2
-      real*8        jx3,jy3,jz3
-      real*8        jx4,jy4,jz4
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        dx22,dy22,dz22,rsq22,rinv22
-      real*8        dx23,dy23,dz23,rsq23,rinv23
-      real*8        dx24,dy24,dz24,rsq24,rinv24
-      real*8        dx32,dy32,dz32,rsq32,rinv32
-      real*8        dx33,dy33,dz33,rsq33,rinv33
-      real*8        dx34,dy34,dz34,rsq34,rinv34
-      real*8        dx42,dy42,dz42,rsq42,rinv42
-      real*8        dx43,dy43,dz43,rsq43,rinv43
-      real*8        dx44,dy44,dz44,rsq44,rinv44
-      real*8        qH,qM,qqMM,qqMH,qqHH
-      real*8        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated VdW interaction - dispersion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq24*rinv24    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq34*rinv34    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq42*rinv42    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq43*rinv43    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Calculate table index
-            r                = rsq44*rinv44    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 308 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel400.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel400.f
deleted file mode 100644 (file)
index c055448..0000000
+++ /dev/null
@@ -1,427 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel400
-C Coulomb interaction:     Generalized-Born
-C VdW interaction:         Not calculated
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77dkernel400(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        isai,isaj,isaprod,gbscale,vgb
-      real*8        dvdasum,dvdatmp,dvdaj,fgb
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          isai             = invsqrta(ii)    
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          dvdasum          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            isaj             = invsqrta(jnr)   
-            isaprod          = isai*isaj       
-            qq               = iq*charge(jnr)  
-            vcoul            = qq*rinv11       
-            fscal            = vcoul*rinv11    
-            qq               = isaprod*(-qq)   
-            gbscale          = isaprod*gbtabscale
-
-C          Tabulated Generalized-Born interaction
-            dvdaj            = dvda(jnr)       
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*gbscale       
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-            Y                = GBtab(nnn)      
-            F                = GBtab(nnn+1)    
-            Geps             = eps*GBtab(nnn+2)
-            Heps2            = eps2*GBtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vgb              = qq*VV           
-            fijC             = qq*FF*gbscale   
-            dvdatmp          = -0.5*(vgb+fijC*r)
-            dvdasum          = dvdasum + dvdatmp
-            dvda(jnr)        = dvdaj+dvdatmp*isaj*isaj
-            vctot            = vctot + vcoul   
-            fscal            = -(fijC-fscal)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 54 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          dvda(ii)         = dvda(ii) + dvdasum*isai*isai
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 12 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel400nf
-C Coulomb interaction:     Generalized-Born
-C VdW interaction:         Not calculated
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77dkernel400nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        isai,isaj,isaprod,gbscale,vgb
-      real*8        ix1,iy1,iz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          isai             = invsqrta(ii)    
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            isaj             = invsqrta(jnr)   
-            isaprod          = isai*isaj       
-            qq               = iq*charge(jnr)  
-            vcoul            = qq*rinv11       
-            qq               = isaprod*(-qq)   
-            gbscale          = isaprod*gbtabscale
-
-C          Tabulated Generalized-Born interaction
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*gbscale       
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-            Y                = GBtab(nnn)      
-            F                = GBtab(nnn+1)    
-            Geps             = eps*GBtab(nnn+2)
-            Heps2            = eps2*GBtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vgb              = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 34 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 5 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel410.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel410.f
deleted file mode 100644 (file)
index 2b07616..0000000
+++ /dev/null
@@ -1,468 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel410
-C Coulomb interaction:     Generalized-Born
-C VdW interaction:         Lennard-Jones
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77dkernel410(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        isai,isaj,isaprod,gbscale,vgb
-      real*8        dvdasum,dvdatmp,dvdaj,fgb
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          isai             = invsqrta(ii)    
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-          dvdasum          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            isaj             = invsqrta(jnr)   
-            isaprod          = isai*isaj       
-            qq               = iq*charge(jnr)  
-            vcoul            = qq*rinv11       
-            fscal            = vcoul*rinv11    
-            qq               = isaprod*(-qq)   
-            gbscale          = isaprod*gbtabscale
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Tabulated Generalized-Born interaction
-            dvdaj            = dvda(jnr)       
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*gbscale       
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-            Y                = GBtab(nnn)      
-            F                = GBtab(nnn+1)    
-            Geps             = eps*GBtab(nnn+2)
-            Heps2            = eps2*GBtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vgb              = qq*VV           
-            fijC             = qq*FF*gbscale   
-            dvdatmp          = -0.5*(vgb+fijC*r)
-            dvdasum          = dvdasum + dvdatmp
-            dvda(jnr)        = dvdaj+dvdatmp*isaj*isaj
-            vctot            = vctot + vcoul   
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-     &  -(fijC-fscal)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 67 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-          dvda(ii)         = dvda(ii) + dvdasum*isai*isai
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 13 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel410nf
-C Coulomb interaction:     Generalized-Born
-C VdW interaction:         Lennard-Jones
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77dkernel410nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        isai,isaj,isaprod,gbscale,vgb
-      real*8        ix1,iy1,iz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          isai             = invsqrta(ii)    
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            isaj             = invsqrta(jnr)   
-            isaprod          = isai*isaj       
-            qq               = iq*charge(jnr)  
-            vcoul            = qq*rinv11       
-            qq               = isaprod*(-qq)   
-            gbscale          = isaprod*gbtabscale
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Tabulated Generalized-Born interaction
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*gbscale       
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-            Y                = GBtab(nnn)      
-            F                = GBtab(nnn+1)    
-            Geps             = eps*GBtab(nnn+2)
-            Heps2            = eps2*GBtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vgb              = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Inner loop uses 42 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel420.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel420.f
deleted file mode 100644 (file)
index 09d2a5c..0000000
+++ /dev/null
@@ -1,472 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel420
-C Coulomb interaction:     Generalized-Born
-C VdW interaction:         Buckingham
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77dkernel420(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        rinvsq
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        isai,isaj,isaprod,gbscale,vgb
-      real*8        dvdasum,dvdatmp,dvdaj,fgb
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,cexp1,cexp2
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          isai             = invsqrta(ii)    
-          nti              = 3*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-          dvdasum          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            isaj             = invsqrta(jnr)   
-            isaprod          = isai*isaj       
-            qq               = iq*charge(jnr)  
-            vcoul            = qq*rinv11       
-            fscal            = vcoul*rinv11    
-            qq               = isaprod*(-qq)   
-            gbscale          = isaprod*gbtabscale
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Tabulated Generalized-Born interaction
-            dvdaj            = dvda(jnr)       
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*gbscale       
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-            Y                = GBtab(nnn)      
-            F                = GBtab(nnn+1)    
-            Geps             = eps*GBtab(nnn+2)
-            Heps2            = eps2*GBtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vgb              = qq*VV           
-            fijC             = qq*FF*gbscale   
-            dvdatmp          = -0.5*(vgb+fijC*r)
-            dvdasum          = dvdasum + dvdatmp
-            dvda(jnr)        = dvdaj+dvdatmp*isaj*isaj
-            vctot            = vctot + vcoul   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-     &  -(fijC-fscal)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 93 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-          dvda(ii)         = dvda(ii) + dvdasum*isai*isai
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 13 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel420nf
-C Coulomb interaction:     Generalized-Born
-C VdW interaction:         Buckingham
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77dkernel420nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        rinvsq
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        rinvsix
-      real*8        Vvdw6,Vvdwtot
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        isai,isaj,isaprod,gbscale,vgb
-      real*8        Vvdwexp,br
-      real*8        ix1,iy1,iz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,cexp1,cexp2
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          isai             = invsqrta(ii)    
-          nti              = 3*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            isaj             = invsqrta(jnr)   
-            isaprod          = isai*isaj       
-            qq               = iq*charge(jnr)  
-            vcoul            = qq*rinv11       
-            qq               = isaprod*(-qq)   
-            gbscale          = isaprod*gbtabscale
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Tabulated Generalized-Born interaction
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*gbscale       
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-            Y                = GBtab(nnn)      
-            F                = GBtab(nnn+1)    
-            Geps             = eps*GBtab(nnn+2)
-            Heps2            = eps2*GBtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vgb              = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Inner loop uses 69 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel430.f b/src/gmxlib/nonbonded/nb_kernel_f77_double/f77dkernel430.f
deleted file mode 100644 (file)
index 1b3bc1c..0000000
+++ /dev/null
@@ -1,515 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77dkernel430
-C Coulomb interaction:     Generalized-Born
-C VdW interaction:         Tabulated
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77dkernel430(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        fscal,tx,ty,tz
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        FF
-      real*8        fijC
-      real*8        fijD,fijR
-      real*8        isai,isaj,isaprod,gbscale,vgb
-      real*8        dvdasum,dvdatmp,dvdaj,fgb
-      real*8        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          isai             = invsqrta(ii)    
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-          dvdasum          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            isaj             = invsqrta(jnr)   
-            isaprod          = isai*isaj       
-            qq               = iq*charge(jnr)  
-            vcoul            = qq*rinv11       
-            fscal            = vcoul*rinv11    
-            qq               = isaprod*(-qq)   
-            gbscale          = isaprod*gbtabscale
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Tabulated Generalized-Born interaction
-            dvdaj            = dvda(jnr)       
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*gbscale       
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-            Y                = GBtab(nnn)      
-            F                = GBtab(nnn+1)    
-            Geps             = eps*GBtab(nnn+2)
-            Heps2            = eps2*GBtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vgb              = qq*VV           
-            fijC             = qq*FF*gbscale   
-            dvdatmp          = -0.5*(vgb+fijC*r)
-            dvdasum          = dvdasum + dvdatmp
-            dvda(jnr)        = dvdaj+dvdatmp*isaj*isaj
-            vctot            = vctot + vcoul   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijD+fijR)*tabscale+fijC-fscal)
-     &  *rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 85 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-          dvda(ii)         = dvda(ii) + dvdasum*isai*isai
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 13 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77dkernel430nf
-C Coulomb interaction:     Generalized-Born
-C VdW interaction:         Tabulated
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77dkernel430nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*8        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*8        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*8        Vvdw(*),tabscale,VFtab(*)
-      real*8        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*8        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*8        shX,shY,shZ
-      real*8        iq
-      real*8        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*8        Vvdw6,Vvdwtot
-      real*8        Vvdw12
-      real*8        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*8        Y,F,Geps,Heps2,Fp,VV
-      real*8        isai,isaj,isaprod,gbscale,vgb
-      real*8        ix1,iy1,iz1
-      real*8        jx1,jy1,jz1
-      real*8        dx11,dy11,dz11,rsq11,rinv11
-      real*8        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          isai             = invsqrta(ii)    
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            isaj             = invsqrta(jnr)   
-            isaprod          = isai*isaj       
-            qq               = iq*charge(jnr)  
-            vcoul            = qq*rinv11       
-            qq               = isaprod*(-qq)   
-            gbscale          = isaprod*gbtabscale
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Tabulated Generalized-Born interaction
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*gbscale       
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-            Y                = GBtab(nnn)      
-            F                = GBtab(nnn+1)    
-            Geps             = eps*GBtab(nnn+2)
-            Heps2            = eps2*GBtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vgb              = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Inner loop uses 54 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel010_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel010_f77_double.c
deleted file mode 100644 (file)
index 013fb7f..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel010_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 010
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel010,F77DKERNEL010)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel010nf,F77DKERNEL010NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel010_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel010,F77DKERNEL010)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel010nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel010nf,F77DKERNEL010NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel010_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel010_f77_double.h
deleted file mode 100644 (file)
index deebdb3..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL010_F77D_H_
-#define _NBKERNEL010_F77D_H_
-
-/*! \file  nb_kernel010_f77_double.h
- *  \brief Nonbonded kernel 010 (LJ)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 010 with forces.
- *
- *  <b>Coulomb interaction:</b> No <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel010_f77_double
-                (int *         nri,        int *         iinr,     
-                 int *         jindex,     int *         jjnr,   
-                 int *         shift,      real *        shiftvec,
-                 real *        fshift,     int *         gid, 
-                 real *        pos,        real *        faction,
-                 real *        charge,     real *        facel,
-                 real *        krf,        real *        crf,  
-                 real *        Vc,         int *         type,   
-                 int *         ntype,      real *        vdwparam,
-                 real *        Vvdw,       real *        tabscale,
-                 real *        VFtab,      real *        invsqrta, 
-                 real *        dvda,       real *        gbtabscale,
-                 real *        GBtab,      int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real *        work);
-
-
-/*! \brief Nonbonded kernel 010 without forces.
- *
- *  <b>Coulomb interaction:</b> No <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel010nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real *        work);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL010_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel020_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel020_f77_double.c
deleted file mode 100644 (file)
index de23c50..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel020_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 020
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel020,F77DKERNEL020)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel020nf,F77DKERNEL020NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel020_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel020,F77DKERNEL020)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel020nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel020nf,F77DKERNEL020NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel020_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel020_f77_double.h
deleted file mode 100644 (file)
index d88c502..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL020_F77D_H_
-#define _NBKERNEL020_F77D_H_
-
-/*! \file  nb_kernel020_f77_double.h
- *  \brief Nonbonded kernel 020 (Bham)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 020 with forces.
- *
- *  <b>Coulomb interaction:</b> No <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel020_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 020 without forces.
- *
- *  <b>Coulomb interaction:</b> No <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel020nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL020_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel030_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel030_f77_double.c
deleted file mode 100644 (file)
index 60e8216..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel030_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 030
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel030,F77DKERNEL030)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel030nf,F77DKERNEL030NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel030_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel030,F77DKERNEL030)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel030nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel030nf,F77DKERNEL030NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel030_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel030_f77_double.h
deleted file mode 100644 (file)
index c5fab23..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL030_F77D_H_
-#define _NBKERNEL030_F77D_H_
-
-/*! \file  nb_kernel030_f77_double.h
- *  \brief Nonbonded kernel 030 (Tab VdW)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 030 with forces.
- *
- *  <b>Coulomb interaction:</b> No <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel030_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 030 without forces.
- *
- *  <b>Coulomb interaction:</b> No <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel030nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL030_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel100_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel100_f77_double.c
deleted file mode 100644 (file)
index 37423a4..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel100_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 100
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel100,F77DKERNEL100)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel100nf,F77DKERNEL100NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel100_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel100,F77DKERNEL100)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel100nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel100nf,F77DKERNEL100NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel100_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel100_f77_double.h
deleted file mode 100644 (file)
index fc70e51..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL100_F77D_H_
-#define _NBKERNEL100_F77D_H_
-
-/*! \file  nb_kernel100_f77_double.h
- *  \brief Nonbonded kernel 100 (Coul)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 100 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel100_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 100 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel100nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL100_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel101_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel101_f77_double.c
deleted file mode 100644 (file)
index 760042c..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel101_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 101
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel101,F77DKERNEL101)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel101nf,F77DKERNEL101NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel101_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel101,F77DKERNEL101)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel101nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel101nf,F77DKERNEL101NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel101_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel101_f77_double.h
deleted file mode 100644 (file)
index 0a7dbc1..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL101_F77D_H_
-#define _NBKERNEL101_F77D_H_
-
-/*! \file  nb_kernel101_f77_double.h
- *  \brief Nonbonded kernel 101 (Coul, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 101 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel101_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 101 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel101nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL101_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel102_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel102_f77_double.c
deleted file mode 100644 (file)
index 70c1f7b..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel102_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 102
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel102,F77DKERNEL102)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel102nf,F77DKERNEL102NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel102_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel102,F77DKERNEL102)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel102nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel102nf,F77DKERNEL102NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel102_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel102_f77_double.h
deleted file mode 100644 (file)
index fd3c831..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL102_F77D_H_
-#define _NBKERNEL102_F77D_H_
-
-/*! \file  nb_kernel102_f77_double.h
- *  \brief Nonbonded kernel 102 (Coul, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 102 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel102_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 102 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel102nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL102_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel103_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel103_f77_double.c
deleted file mode 100644 (file)
index 73d469f..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel103_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 103
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel103,F77DKERNEL103)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel103nf,F77DKERNEL103NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel103_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel103,F77DKERNEL103)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel103nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel103nf,F77DKERNEL103NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel103_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel103_f77_double.h
deleted file mode 100644 (file)
index 9fad383..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL103_F77D_H_
-#define _NBKERNEL103_F77D_H_
-
-/*! \file  nb_kernel103_f77_double.h
- *  \brief Nonbonded kernel 103 (Coul, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 103 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel103_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 103 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel103nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL103_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel104_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel104_f77_double.c
deleted file mode 100644 (file)
index a728861..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel104_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 104
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel104,F77DKERNEL104)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel104nf,F77DKERNEL104NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel104_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel104,F77DKERNEL104)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel104nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel104nf,F77DKERNEL104NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel104_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel104_f77_double.h
deleted file mode 100644 (file)
index 733d2f6..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL104_F77D_H_
-#define _NBKERNEL104_F77D_H_
-
-/*! \file  nb_kernel104_f77_double.h
- *  \brief Nonbonded kernel 104 (Coul, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 104 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel104_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 104 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel104nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL104_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel110_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel110_f77_double.c
deleted file mode 100644 (file)
index e467160..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel110_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 110
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel110,F77DKERNEL110)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel110nf,F77DKERNEL110NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel110_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel110,F77DKERNEL110)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel110nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel110nf,F77DKERNEL110NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel110_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel110_f77_double.h
deleted file mode 100644 (file)
index b99891f..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL110_F77D_H_
-#define _NBKERNEL110_F77D_H_
-
-/*! \file  nb_kernel110_f77_double.h
- *  \brief Nonbonded kernel 110 (Coul + LJ)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 110 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel110_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 110 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel110nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL110_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel111_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel111_f77_double.c
deleted file mode 100644 (file)
index 55054c8..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel111_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 111
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel111,F77DKERNEL111)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel111nf,F77DKERNEL111NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel111_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel111,F77DKERNEL111)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel111nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel111nf,F77DKERNEL111NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel111_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel111_f77_double.h
deleted file mode 100644 (file)
index cee1150..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL111_F77D_H_
-#define _NBKERNEL111_F77D_H_
-
-/*! \file  nb_kernel111_f77_double.h
- *  \brief Nonbonded kernel 111 (Coul + LJ, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 111 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel111_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 111 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel111nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL111_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel112_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel112_f77_double.c
deleted file mode 100644 (file)
index 6a9d4ac..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel112_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 112
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel112,F77DKERNEL112)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel112nf,F77DKERNEL112NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel112_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel112,F77DKERNEL112)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel112nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel112nf,F77DKERNEL112NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel112_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel112_f77_double.h
deleted file mode 100644 (file)
index ffc3eaf..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL112_F77D_H_
-#define _NBKERNEL112_F77D_H_
-
-/*! \file  nb_kernel112_f77_double.h
- *  \brief Nonbonded kernel 112 (Coul + LJ, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 112 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel112_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 112 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel112nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL112_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel113_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel113_f77_double.c
deleted file mode 100644 (file)
index d185635..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel113_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 113
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel113,F77DKERNEL113)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel113nf,F77DKERNEL113NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel113_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel113,F77DKERNEL113)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel113nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel113nf,F77DKERNEL113NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel113_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel113_f77_double.h
deleted file mode 100644 (file)
index 22dbeea..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL113_F77D_H_
-#define _NBKERNEL113_F77D_H_
-
-/*! \file  nb_kernel113_f77_double.h
- *  \brief Nonbonded kernel 113 (Coul + LJ, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 113 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel113_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 113 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel113nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL113_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel114_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel114_f77_double.c
deleted file mode 100644 (file)
index 456abf8..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel114_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 114
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel114,F77DKERNEL114)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel114nf,F77DKERNEL114NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel114_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel114,F77DKERNEL114)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel114nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel114nf,F77DKERNEL114NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel114_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel114_f77_double.h
deleted file mode 100644 (file)
index 60a3a75..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL114_F77D_H_
-#define _NBKERNEL114_F77D_H_
-
-/*! \file  nb_kernel114_f77_double.h
- *  \brief Nonbonded kernel 114 (Coul + LJ, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 114 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel114_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 114 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel114nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL114_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel120_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel120_f77_double.c
deleted file mode 100644 (file)
index 197a231..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel120_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 120
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel120,F77DKERNEL120)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel120nf,F77DKERNEL120NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel120_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel120,F77DKERNEL120)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel120nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel120nf,F77DKERNEL120NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel120_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel120_f77_double.h
deleted file mode 100644 (file)
index 64cd855..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL120_F77D_H_
-#define _NBKERNEL120_F77D_H_
-
-/*! \file  nb_kernel120_f77_double.h
- *  \brief Nonbonded kernel 120 (Coul + Bham)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 120 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel120_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 120 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel120nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL120_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel121_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel121_f77_double.c
deleted file mode 100644 (file)
index 6f2cd49..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel121_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 121
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel121,F77DKERNEL121)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel121nf,F77DKERNEL121NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel121_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel121,F77DKERNEL121)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel121nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel121nf,F77DKERNEL121NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel121_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel121_f77_double.h
deleted file mode 100644 (file)
index 3dc7c10..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL121_F77D_H_
-#define _NBKERNEL121_F77D_H_
-
-/*! \file  nb_kernel121_f77_double.h
- *  \brief Nonbonded kernel 121 (Coul + Bham, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 121 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel121_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 121 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel121nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL121_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel122_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel122_f77_double.c
deleted file mode 100644 (file)
index e0ceaea..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel122_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 122
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel122,F77DKERNEL122)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel122nf,F77DKERNEL122NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel122_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel122,F77DKERNEL122)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel122nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel122nf,F77DKERNEL122NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel122_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel122_f77_double.h
deleted file mode 100644 (file)
index d3c4e9e..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL122_F77D_H_
-#define _NBKERNEL122_F77D_H_
-
-/*! \file  nb_kernel122_f77_double.h
- *  \brief Nonbonded kernel 122 (Coul + Bham, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 122 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel122_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 122 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel122nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL122_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel123_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel123_f77_double.c
deleted file mode 100644 (file)
index 74e61f5..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel123_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 123
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel123,F77DKERNEL123)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel123nf,F77DKERNEL123NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel123_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel123,F77DKERNEL123)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel123nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel123nf,F77DKERNEL123NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel123_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel123_f77_double.h
deleted file mode 100644 (file)
index 5784193..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL123_F77D_H_
-#define _NBKERNEL123_F77D_H_
-
-/*! \file  nb_kernel123_f77_double.h
- *  \brief Nonbonded kernel 123 (Coul + Bham, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 123 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel123_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 123 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel123nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL123_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel124_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel124_f77_double.c
deleted file mode 100644 (file)
index 5fb9488..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel124_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 124
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel124,F77DKERNEL124)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel124nf,F77DKERNEL124NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel124_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel124,F77DKERNEL124)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel124nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel124nf,F77DKERNEL124NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel124_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel124_f77_double.h
deleted file mode 100644 (file)
index cb31301..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL124_F77D_H_
-#define _NBKERNEL124_F77D_H_
-
-/*! \file  nb_kernel124_f77_double.h
- *  \brief Nonbonded kernel 124 (Coul + Bham, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 124 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel124_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 124 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel124nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL124_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel130_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel130_f77_double.c
deleted file mode 100644 (file)
index 2f29e36..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel130_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 130
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel130,F77DKERNEL130)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel130nf,F77DKERNEL130NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel130_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel130,F77DKERNEL130)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel130nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel130nf,F77DKERNEL130NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel130_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel130_f77_double.h
deleted file mode 100644 (file)
index 9786bdb..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL130_F77D_H_
-#define _NBKERNEL130_F77D_H_
-
-/*! \file  nb_kernel130_f77_double.h
- *  \brief Nonbonded kernel 130 (Coul + Tab VdW)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 130 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel130_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 130 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel130nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL130_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel131_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel131_f77_double.c
deleted file mode 100644 (file)
index 5f427cd..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel131_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 131
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel131,F77DKERNEL131)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel131nf,F77DKERNEL131NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel131_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel131,F77DKERNEL131)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel131nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel131nf,F77DKERNEL131NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel131_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel131_f77_double.h
deleted file mode 100644 (file)
index 8b263a2..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL131_F77D_H_
-#define _NBKERNEL131_F77D_H_
-
-/*! \file  nb_kernel131_f77_double.h
- *  \brief Nonbonded kernel 131 (Coul + Tab VdW, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 131 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel131_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 131 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel131nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL131_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel132_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel132_f77_double.c
deleted file mode 100644 (file)
index 979969a..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel132_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 132
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel132,F77DKERNEL132)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel132nf,F77DKERNEL132NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel132_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel132,F77DKERNEL132)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel132nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel132nf,F77DKERNEL132NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel132_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel132_f77_double.h
deleted file mode 100644 (file)
index 496ca1a..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL132_F77D_H_
-#define _NBKERNEL132_F77D_H_
-
-/*! \file  nb_kernel132_f77_double.h
- *  \brief Nonbonded kernel 132 (Coul + Tab VdW, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 132 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel132_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 132 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel132nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL132_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel133_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel133_f77_double.c
deleted file mode 100644 (file)
index de0dbb1..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel133_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 133
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel133,F77DKERNEL133)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel133nf,F77DKERNEL133NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel133_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel133,F77DKERNEL133)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel133nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel133nf,F77DKERNEL133NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel133_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel133_f77_double.h
deleted file mode 100644 (file)
index 343568b..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL133_F77D_H_
-#define _NBKERNEL133_F77D_H_
-
-/*! \file  nb_kernel133_f77_double.h
- *  \brief Nonbonded kernel 133 (Coul + Tab VdW, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 133 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel133_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 133 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel133nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL133_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel134_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel134_f77_double.c
deleted file mode 100644 (file)
index 42ee17d..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel134_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 134
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel134,F77DKERNEL134)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel134nf,F77DKERNEL134NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel134_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel134,F77DKERNEL134)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel134nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel134nf,F77DKERNEL134NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel134_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel134_f77_double.h
deleted file mode 100644 (file)
index 578d607..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL134_F77D_H_
-#define _NBKERNEL134_F77D_H_
-
-/*! \file  nb_kernel134_f77_double.h
- *  \brief Nonbonded kernel 134 (Coul + Tab VdW, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 134 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel134_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 134 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel134nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL134_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel200_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel200_f77_double.c
deleted file mode 100644 (file)
index 5dba997..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel200_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 200
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel200,F77DKERNEL200)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel200nf,F77DKERNEL200NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel200_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel200,F77DKERNEL200)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel200nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel200nf,F77DKERNEL200NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel200_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel200_f77_double.h
deleted file mode 100644 (file)
index 63074a7..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL200_F77D_H_
-#define _NBKERNEL200_F77D_H_
-
-/*! \file  nb_kernel200_f77_double.h
- *  \brief Nonbonded kernel 200 (RF Coul)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 200 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel200_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 200 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel200nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL200_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel201_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel201_f77_double.c
deleted file mode 100644 (file)
index c32ac57..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel201_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 201
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel201,F77DKERNEL201)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel201nf,F77DKERNEL201NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel201_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel201,F77DKERNEL201)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel201nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel201nf,F77DKERNEL201NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel201_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel201_f77_double.h
deleted file mode 100644 (file)
index 333a685..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL201_F77D_H_
-#define _NBKERNEL201_F77D_H_
-
-/*! \file  nb_kernel201_f77_double.h
- *  \brief Nonbonded kernel 201 (RF Coul, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 201 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel201_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 201 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel201nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL201_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel202_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel202_f77_double.c
deleted file mode 100644 (file)
index a34fef2..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel202_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 202
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel202,F77DKERNEL202)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel202nf,F77DKERNEL202NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel202_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel202,F77DKERNEL202)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel202nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel202nf,F77DKERNEL202NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel202_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel202_f77_double.h
deleted file mode 100644 (file)
index 963feb9..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL202_F77D_H_
-#define _NBKERNEL202_F77D_H_
-
-/*! \file  nb_kernel202_f77_double.h
- *  \brief Nonbonded kernel 202 (RF Coul, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 202 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel202_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 202 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel202nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL202_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel203_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel203_f77_double.c
deleted file mode 100644 (file)
index fc46325..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel203_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 203
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel203,F77DKERNEL203)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel203nf,F77DKERNEL203NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel203_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel203,F77DKERNEL203)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel203nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel203nf,F77DKERNEL203NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel203_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel203_f77_double.h
deleted file mode 100644 (file)
index 2823275..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL203_F77D_H_
-#define _NBKERNEL203_F77D_H_
-
-/*! \file  nb_kernel203_f77_double.h
- *  \brief Nonbonded kernel 203 (RF Coul, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 203 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel203_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 203 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel203nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL203_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel204_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel204_f77_double.c
deleted file mode 100644 (file)
index 785a37e..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel204_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 204
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel204,F77DKERNEL204)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel204nf,F77DKERNEL204NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel204_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel204,F77DKERNEL204)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel204nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel204nf,F77DKERNEL204NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel204_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel204_f77_double.h
deleted file mode 100644 (file)
index f3dea72..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL204_F77D_H_
-#define _NBKERNEL204_F77D_H_
-
-/*! \file  nb_kernel204_f77_double.h
- *  \brief Nonbonded kernel 204 (RF Coul, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 204 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel204_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 204 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel204nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL204_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel210_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel210_f77_double.c
deleted file mode 100644 (file)
index 045200b..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel210_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 210
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel210,F77DKERNEL210)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel210nf,F77DKERNEL210NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel210_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel210,F77DKERNEL210)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel210nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel210nf,F77DKERNEL210NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel210_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel210_f77_double.h
deleted file mode 100644 (file)
index e6a6117..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL210_F77D_H_
-#define _NBKERNEL210_F77D_H_
-
-/*! \file  nb_kernel210_f77_double.h
- *  \brief Nonbonded kernel 210 (RF Coul + LJ)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 210 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel210_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 210 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel210nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL210_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel211_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel211_f77_double.c
deleted file mode 100644 (file)
index 16b1854..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel211_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 211
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel211,F77DKERNEL211)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel211nf,F77DKERNEL211NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel211_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel211,F77DKERNEL211)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel211nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel211nf,F77DKERNEL211NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel211_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel211_f77_double.h
deleted file mode 100644 (file)
index 98d49a0..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL211_F77D_H_
-#define _NBKERNEL211_F77D_H_
-
-/*! \file  nb_kernel211_f77_double.h
- *  \brief Nonbonded kernel 211 (RF Coul + LJ, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 211 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel211_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 211 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel211nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL211_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel212_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel212_f77_double.c
deleted file mode 100644 (file)
index 6a25f4e..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel212_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 212
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel212,F77DKERNEL212)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel212nf,F77DKERNEL212NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel212_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel212,F77DKERNEL212)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel212nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel212nf,F77DKERNEL212NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel212_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel212_f77_double.h
deleted file mode 100644 (file)
index e90ce35..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL212_F77D_H_
-#define _NBKERNEL212_F77D_H_
-
-/*! \file  nb_kernel212_f77_double.h
- *  \brief Nonbonded kernel 212 (RF Coul + LJ, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 212 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel212_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 212 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel212nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL212_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel213_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel213_f77_double.c
deleted file mode 100644 (file)
index 9b86664..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel213_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 213
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel213,F77DKERNEL213)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel213nf,F77DKERNEL213NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel213_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel213,F77DKERNEL213)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel213nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel213nf,F77DKERNEL213NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel213_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel213_f77_double.h
deleted file mode 100644 (file)
index 3fa4150..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL213_F77D_H_
-#define _NBKERNEL213_F77D_H_
-
-/*! \file  nb_kernel213_f77_double.h
- *  \brief Nonbonded kernel 213 (RF Coul + LJ, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 213 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel213_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 213 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel213nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL213_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel214_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel214_f77_double.c
deleted file mode 100644 (file)
index 5bc58b6..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel214_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 214
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel214,F77DKERNEL214)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel214nf,F77DKERNEL214NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel214_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel214,F77DKERNEL214)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel214nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel214nf,F77DKERNEL214NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel214_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel214_f77_double.h
deleted file mode 100644 (file)
index c3468f3..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL214_F77D_H_
-#define _NBKERNEL214_F77D_H_
-
-/*! \file  nb_kernel214_f77_double.h
- *  \brief Nonbonded kernel 214 (RF Coul + LJ, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 214 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel214_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 214 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel214nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL214_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel220_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel220_f77_double.c
deleted file mode 100644 (file)
index c4d5733..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel220_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 220
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel220,F77DKERNEL220)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel220nf,F77DKERNEL220NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel220_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel220,F77DKERNEL220)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel220nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel220nf,F77DKERNEL220NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel220_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel220_f77_double.h
deleted file mode 100644 (file)
index f2e9b23..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL220_F77D_H_
-#define _NBKERNEL220_F77D_H_
-
-/*! \file  nb_kernel220_f77_double.h
- *  \brief Nonbonded kernel 220 (RF Coul + Bham)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 220 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel220_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 220 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel220nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL220_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel221_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel221_f77_double.c
deleted file mode 100644 (file)
index 81f24c8..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel221_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 221
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel221,F77DKERNEL221)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel221nf,F77DKERNEL221NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel221_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel221,F77DKERNEL221)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel221nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel221nf,F77DKERNEL221NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel221_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel221_f77_double.h
deleted file mode 100644 (file)
index 979a3f3..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL221_F77D_H_
-#define _NBKERNEL221_F77D_H_
-
-/*! \file  nb_kernel221_f77_double.h
- *  \brief Nonbonded kernel 221 (RF Coul + Bham, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 221 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel221_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 221 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel221nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL221_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel222_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel222_f77_double.c
deleted file mode 100644 (file)
index 2544f29..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel222_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 222
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel222,F77DKERNEL222)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel222nf,F77DKERNEL222NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel222_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel222,F77DKERNEL222)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel222nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel222nf,F77DKERNEL222NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel222_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel222_f77_double.h
deleted file mode 100644 (file)
index 2f95aa7..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL222_F77D_H_
-#define _NBKERNEL222_F77D_H_
-
-/*! \file  nb_kernel222_f77_double.h
- *  \brief Nonbonded kernel 222 (RF Coul + Bham, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 222 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel222_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 222 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel222nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL222_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel223_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel223_f77_double.c
deleted file mode 100644 (file)
index ed90c88..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel223_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 223
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel223,F77DKERNEL223)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel223nf,F77DKERNEL223NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel223_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel223,F77DKERNEL223)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel223nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel223nf,F77DKERNEL223NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel223_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel223_f77_double.h
deleted file mode 100644 (file)
index 37a30c0..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL223_F77D_H_
-#define _NBKERNEL223_F77D_H_
-
-/*! \file  nb_kernel223_f77_double.h
- *  \brief Nonbonded kernel 223 (RF Coul + Bham, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 223 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel223_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 223 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel223nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL223_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel224_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel224_f77_double.c
deleted file mode 100644 (file)
index a54c5e4..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel224_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 224
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel224,F77DKERNEL224)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel224nf,F77DKERNEL224NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel224_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel224,F77DKERNEL224)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel224nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel224nf,F77DKERNEL224NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel224_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel224_f77_double.h
deleted file mode 100644 (file)
index e710d89..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL224_F77D_H_
-#define _NBKERNEL224_F77D_H_
-
-/*! \file  nb_kernel224_f77_double.h
- *  \brief Nonbonded kernel 224 (RF Coul + Bham, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 224 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel224_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 224 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel224nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL224_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel230_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel230_f77_double.c
deleted file mode 100644 (file)
index 96ba143..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel230_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 230
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel230,F77DKERNEL230)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel230nf,F77DKERNEL230NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel230_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel230,F77DKERNEL230)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel230nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel230nf,F77DKERNEL230NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel230_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel230_f77_double.h
deleted file mode 100644 (file)
index b09fde0..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL230_F77D_H_
-#define _NBKERNEL230_F77D_H_
-
-/*! \file  nb_kernel230_f77_double.h
- *  \brief Nonbonded kernel 230 (RF Coul + Tab VdW)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 230 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel230_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 230 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel230nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL230_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel231_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel231_f77_double.c
deleted file mode 100644 (file)
index 50a3707..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel231_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 231
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel231,F77DKERNEL231)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel231nf,F77DKERNEL231NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel231_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel231,F77DKERNEL231)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel231nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel231nf,F77DKERNEL231NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel231_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel231_f77_double.h
deleted file mode 100644 (file)
index 4eafe47..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL231_F77D_H_
-#define _NBKERNEL231_F77D_H_
-
-/*! \file  nb_kernel231_f77_double.h
- *  \brief Nonbonded kernel 231 (RF Coul + Tab VdW, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 231 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel231_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 231 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel231nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL231_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel232_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel232_f77_double.c
deleted file mode 100644 (file)
index c5ea814..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel232_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 232
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel232,F77DKERNEL232)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel232nf,F77DKERNEL232NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel232_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel232,F77DKERNEL232)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel232nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel232nf,F77DKERNEL232NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel232_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel232_f77_double.h
deleted file mode 100644 (file)
index f33355a..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL232_F77D_H_
-#define _NBKERNEL232_F77D_H_
-
-/*! \file  nb_kernel232_f77_double.h
- *  \brief Nonbonded kernel 232 (RF Coul + Tab VdW, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 232 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel232_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 232 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel232nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL232_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel233_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel233_f77_double.c
deleted file mode 100644 (file)
index cf362cd..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel233_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 233
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel233,F77DKERNEL233)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel233nf,F77DKERNEL233NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel233_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel233,F77DKERNEL233)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel233nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel233nf,F77DKERNEL233NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel233_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel233_f77_double.h
deleted file mode 100644 (file)
index b34b67d..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL233_F77D_H_
-#define _NBKERNEL233_F77D_H_
-
-/*! \file  nb_kernel233_f77_double.h
- *  \brief Nonbonded kernel 233 (RF Coul + Tab VdW, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 233 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel233_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 233 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel233nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL233_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel234_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel234_f77_double.c
deleted file mode 100644 (file)
index db887c4..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel234_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 234
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel234,F77DKERNEL234)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel234nf,F77DKERNEL234NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel234_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel234,F77DKERNEL234)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel234nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel234nf,F77DKERNEL234NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel234_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel234_f77_double.h
deleted file mode 100644 (file)
index 5ef99fa..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL234_F77D_H_
-#define _NBKERNEL234_F77D_H_
-
-/*! \file  nb_kernel234_f77_double.h
- *  \brief Nonbonded kernel 234 (RF Coul + Tab VdW, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 234 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel234_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 234 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel234nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL234_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel300_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel300_f77_double.c
deleted file mode 100644 (file)
index bf31fbb..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel300_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 300
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel300,F77DKERNEL300)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel300nf,F77DKERNEL300NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel300_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel300,F77DKERNEL300)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel300nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel300nf,F77DKERNEL300NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel300_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel300_f77_double.h
deleted file mode 100644 (file)
index a29da28..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL300_F77D_H_
-#define _NBKERNEL300_F77D_H_
-
-/*! \file  nb_kernel300_f77_double.h
- *  \brief Nonbonded kernel 300 (Tab Coul)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 300 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel300_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 300 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel300nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL300_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel301_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel301_f77_double.c
deleted file mode 100644 (file)
index ed308db..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel301_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 301
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel301,F77DKERNEL301)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel301nf,F77DKERNEL301NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel301_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel301,F77DKERNEL301)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel301nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel301nf,F77DKERNEL301NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel301_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel301_f77_double.h
deleted file mode 100644 (file)
index 00b52cd..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL301_F77D_H_
-#define _NBKERNEL301_F77D_H_
-
-/*! \file  nb_kernel301_f77_double.h
- *  \brief Nonbonded kernel 301 (Tab Coul, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 301 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel301_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 301 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel301nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL301_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel302_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel302_f77_double.c
deleted file mode 100644 (file)
index 6577504..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel302_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 302
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel302,F77DKERNEL302)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel302nf,F77DKERNEL302NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel302_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel302,F77DKERNEL302)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel302nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel302nf,F77DKERNEL302NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel302_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel302_f77_double.h
deleted file mode 100644 (file)
index f7d69a0..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL302_F77D_H_
-#define _NBKERNEL302_F77D_H_
-
-/*! \file  nb_kernel302_f77_double.h
- *  \brief Nonbonded kernel 302 (Tab Coul, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 302 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel302_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 302 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel302nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL302_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel303_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel303_f77_double.c
deleted file mode 100644 (file)
index a2eee20..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel303_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 303
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel303,F77DKERNEL303)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel303nf,F77DKERNEL303NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel303_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel303,F77DKERNEL303)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel303nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel303nf,F77DKERNEL303NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel303_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel303_f77_double.h
deleted file mode 100644 (file)
index 71d3a28..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL303_F77D_H_
-#define _NBKERNEL303_F77D_H_
-
-/*! \file  nb_kernel303_f77_double.h
- *  \brief Nonbonded kernel 303 (Tab Coul, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 303 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel303_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 303 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel303nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL303_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel304_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel304_f77_double.c
deleted file mode 100644 (file)
index 1109f80..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel304_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 304
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel304,F77DKERNEL304)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel304nf,F77DKERNEL304NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel304_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel304,F77DKERNEL304)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel304nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel304nf,F77DKERNEL304NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel304_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel304_f77_double.h
deleted file mode 100644 (file)
index c1875ff..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL304_F77D_H_
-#define _NBKERNEL304_F77D_H_
-
-/*! \file  nb_kernel304_f77_double.h
- *  \brief Nonbonded kernel 304 (Tab Coul, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 304 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel304_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 304 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel304nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL304_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel310_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel310_f77_double.c
deleted file mode 100644 (file)
index 3a7095f..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel310_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 310
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel310,F77DKERNEL310)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel310nf,F77DKERNEL310NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel310_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel310,F77DKERNEL310)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel310nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel310nf,F77DKERNEL310NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel310_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel310_f77_double.h
deleted file mode 100644 (file)
index 78e465c..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL310_F77D_H_
-#define _NBKERNEL310_F77D_H_
-
-/*! \file  nb_kernel310_f77_double.h
- *  \brief Nonbonded kernel 310 (Tab Coul + LJ)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 310 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel310_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 310 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel310nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL310_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel311_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel311_f77_double.c
deleted file mode 100644 (file)
index b4c5292..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel311_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 311
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel311,F77DKERNEL311)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel311nf,F77DKERNEL311NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel311_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel311,F77DKERNEL311)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel311nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel311nf,F77DKERNEL311NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel311_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel311_f77_double.h
deleted file mode 100644 (file)
index 9fc7528..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL311_F77D_H_
-#define _NBKERNEL311_F77D_H_
-
-/*! \file  nb_kernel311_f77_double.h
- *  \brief Nonbonded kernel 311 (Tab Coul + LJ, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 311 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel311_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 311 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel311nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL311_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel312_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel312_f77_double.c
deleted file mode 100644 (file)
index 01a0780..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel312_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 312
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel312,F77DKERNEL312)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel312nf,F77DKERNEL312NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel312_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel312,F77DKERNEL312)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel312nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel312nf,F77DKERNEL312NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel312_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel312_f77_double.h
deleted file mode 100644 (file)
index 9fcce44..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL312_F77D_H_
-#define _NBKERNEL312_F77D_H_
-
-/*! \file  nb_kernel312_f77_double.h
- *  \brief Nonbonded kernel 312 (Tab Coul + LJ, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" 
-{
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 312 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel312_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 312 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel312nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL312_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel313_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel313_f77_double.c
deleted file mode 100644 (file)
index 6c1546d..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel313_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 313
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel313,F77DKERNEL313)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel313nf,F77DKERNEL313NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel313_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel313,F77DKERNEL313)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel313nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel313nf,F77DKERNEL313NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel313_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel313_f77_double.h
deleted file mode 100644 (file)
index 46a7d17..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL313_F77D_H_
-#define _NBKERNEL313_F77D_H_
-
-/*! \file  nb_kernel313_f77_double.h
- *  \brief Nonbonded kernel 313 (Tab Coul + LJ, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 313 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel313_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 313 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel313nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL313_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel314_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel314_f77_double.c
deleted file mode 100644 (file)
index ea293a6..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel314_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 314
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel314,F77DKERNEL314)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel314nf,F77DKERNEL314NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel314_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel314,F77DKERNEL314)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel314nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel314nf,F77DKERNEL314NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel314_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel314_f77_double.h
deleted file mode 100644 (file)
index eb5df82..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL314_F77D_H_
-#define _NBKERNEL314_F77D_H_
-
-/*! \file  nb_kernel314_f77_double.h
- *  \brief Nonbonded kernel 314 (Tab Coul + LJ, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 314 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel314_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 314 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel314nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL314_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel320_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel320_f77_double.c
deleted file mode 100644 (file)
index 0c2da84..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel320_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 320
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel320,F77DKERNEL320)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel320nf,F77DKERNEL320NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel320_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel320,F77DKERNEL320)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel320nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel320nf,F77DKERNEL320NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel320_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel320_f77_double.h
deleted file mode 100644 (file)
index 3472463..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL320_F77D_H_
-#define _NBKERNEL320_F77D_H_
-
-/*! \file  nb_kernel320_f77_double.h
- *  \brief Nonbonded kernel 320 (Tab Coul + Bham)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 320 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel320_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 320 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel320nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL320_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel321_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel321_f77_double.c
deleted file mode 100644 (file)
index f2ca595..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel321_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 321
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel321,F77DKERNEL321)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel321nf,F77DKERNEL321NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel321_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel321,F77DKERNEL321)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel321nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel321nf,F77DKERNEL321NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel321_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel321_f77_double.h
deleted file mode 100644 (file)
index 7c7e084..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL321_F77D_H_
-#define _NBKERNEL321_F77D_H_
-
-/*! \file  nb_kernel321_f77_double.h
- *  \brief Nonbonded kernel 321 (Tab Coul + Bham, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 321 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel321_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 321 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel321nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL321_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel322_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel322_f77_double.c
deleted file mode 100644 (file)
index c873170..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel322_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 322
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel322,F77DKERNEL322)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel322nf,F77DKERNEL322NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel322_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel322,F77DKERNEL322)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel322nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel322nf,F77DKERNEL322NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel322_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel322_f77_double.h
deleted file mode 100644 (file)
index ea51de0..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL322_F77D_H_
-#define _NBKERNEL322_F77D_H_
-
-/*! \file  nb_kernel322_f77_double.h
- *  \brief Nonbonded kernel 322 (Tab Coul + Bham, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 322 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel322_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 322 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel322nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL322_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel323_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel323_f77_double.c
deleted file mode 100644 (file)
index 1b9c551..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel323_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 323
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel323,F77DKERNEL323)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel323nf,F77DKERNEL323NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel323_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel323,F77DKERNEL323)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel323nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel323nf,F77DKERNEL323NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel323_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel323_f77_double.h
deleted file mode 100644 (file)
index cc34756..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL323_F77D_H_
-#define _NBKERNEL323_F77D_H_
-
-/*! \file  nb_kernel323_f77_double.h
- *  \brief Nonbonded kernel 323 (Tab Coul + Bham, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 323 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel323_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 323 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel323nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL323_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel324_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel324_f77_double.c
deleted file mode 100644 (file)
index b43dec0..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel324_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 324
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel324,F77DKERNEL324)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel324nf,F77DKERNEL324NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel324_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel324,F77DKERNEL324)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel324nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel324nf,F77DKERNEL324NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel324_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel324_f77_double.h
deleted file mode 100644 (file)
index e47dfec..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL324_F77D_H_
-#define _NBKERNEL324_F77D_H_
-
-/*! \file  nb_kernel324_f77_double.h
- *  \brief Nonbonded kernel 324 (Tab Coul + Bham, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 324 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel324_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 324 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel324nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL324_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel330_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel330_f77_double.c
deleted file mode 100644 (file)
index 57c8160..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel330_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 330
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel330,F77DKERNEL330)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel330nf,F77DKERNEL330NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel330_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel330,F77DKERNEL330)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel330nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel330nf,F77DKERNEL330NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel330_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel330_f77_double.h
deleted file mode 100644 (file)
index 083931d..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL330_F77D_H_
-#define _NBKERNEL330_F77D_H_
-
-/*! \file  nb_kernel330_f77_double.h
- *  \brief Nonbonded kernel 330 (Tab Coul + Tab VdW)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 330 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel330_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 330 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel330nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL330_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel331_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel331_f77_double.c
deleted file mode 100644 (file)
index 9a4c46e..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel331_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 331
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel331,F77DKERNEL331)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel331nf,F77DKERNEL331NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel331_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel331,F77DKERNEL331)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel331nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel331nf,F77DKERNEL331NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel331_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel331_f77_double.h
deleted file mode 100644 (file)
index b225c34..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL331_F77D_H_
-#define _NBKERNEL331_F77D_H_
-
-/*! \file  nb_kernel331_f77_double.h
- *  \brief Nonbonded kernel 331 (Tab Coul + Tab VdW, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 331 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel331_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 331 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel331nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL331_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel332_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel332_f77_double.c
deleted file mode 100644 (file)
index aa4e099..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel332_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 332
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel332,F77DKERNEL332)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel332nf,F77DKERNEL332NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel332_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel332,F77DKERNEL332)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel332nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel332nf,F77DKERNEL332NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel332_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel332_f77_double.h
deleted file mode 100644 (file)
index c701281..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL332_F77D_H_
-#define _NBKERNEL332_F77D_H_
-
-/*! \file  nb_kernel332_f77_double.h
- *  \brief Nonbonded kernel 332 (Tab Coul + Tab VdW, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 332 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel332_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 332 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel332nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL332_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel333_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel333_f77_double.c
deleted file mode 100644 (file)
index 7b0f51d..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel333_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 333
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel333,F77DKERNEL333)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel333nf,F77DKERNEL333NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel333_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel333,F77DKERNEL333)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel333nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel333nf,F77DKERNEL333NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel333_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel333_f77_double.h
deleted file mode 100644 (file)
index 94879aa..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL333_F77D_H_
-#define _NBKERNEL333_F77D_H_
-
-/*! \file  nb_kernel333_f77_double.h
- *  \brief Nonbonded kernel 333 (Tab Coul + Tab VdW, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 333 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel333_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 333 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel333nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL333_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel334_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel334_f77_double.c
deleted file mode 100644 (file)
index bc52139..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel334_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 334
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel334,F77DKERNEL334)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel334nf,F77DKERNEL334NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel334_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel334,F77DKERNEL334)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel334nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel334nf,F77DKERNEL334NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel334_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel334_f77_double.h
deleted file mode 100644 (file)
index fb52ec7..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL334_F77D_H_
-#define _NBKERNEL334_F77D_H_
-
-/*! \file  nb_kernel334_f77_double.h
- *  \brief Nonbonded kernel 334 (Tab Coul + Tab VdW, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 334 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel334_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 334 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel334nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL334_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel400_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel400_f77_double.c
deleted file mode 100644 (file)
index dfc9d01..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel400_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 400
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel400,F77DKERNEL400)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel400nf,F77DKERNEL400NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel400_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel400,F77DKERNEL400)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel400nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel400nf,F77DKERNEL400NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel400_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel400_f77_double.h
deleted file mode 100644 (file)
index 2a5d037..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL400_F77D_H_
-#define _NBKERNEL400_F77D_H_
-
-/*! \file  nb_kernel400_f77_double.h
- *  \brief Nonbonded kernel 400 (GB Coul)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 400 with forces.
- *
- *  <b>Coulomb interaction:</b> Generalized Born<br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel400_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 400 without forces.
- *
- *  <b>Coulomb interaction:</b> Generalized Born<br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel400nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL400_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel410_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel410_f77_double.c
deleted file mode 100644 (file)
index 5cb42a7..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel410_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 410
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel410,F77DKERNEL410)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel410nf,F77DKERNEL410NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel410_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel410,F77DKERNEL410)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel410nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel410nf,F77DKERNEL410NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel410_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel410_f77_double.h
deleted file mode 100644 (file)
index b5eb878..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL410_F77D_H_
-#define _NBKERNEL410_F77D_H_
-
-/*! \file  nb_kernel410_f77_double.h
- *  \brief Nonbonded kernel 410 (GB Coul + LJ)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 410 with forces.
- *
- *  <b>Coulomb interaction:</b> Generalized Born<br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel410_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 410 without forces.
- *
- *  <b>Coulomb interaction:</b> Generalized Born<br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel410nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL410_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel420_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel420_f77_double.c
deleted file mode 100644 (file)
index dad6be0..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel420_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 420
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel420,F77DKERNEL420)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel420nf,F77DKERNEL420NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel420_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel420,F77DKERNEL420)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel420nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel420nf,F77DKERNEL420NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel420_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel420_f77_double.h
deleted file mode 100644 (file)
index 055087a..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL420_F77D_H_
-#define _NBKERNEL420_F77D_H_
-
-/*! \file  nb_kernel420_f77_double.h
- *  \brief Nonbonded kernel 420 (GB Coul + Bham)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 420 with forces.
- *
- *  <b>Coulomb interaction:</b> Generalized Born<br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel420_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter);
-
-
-/*! \brief Nonbonded kernel 420 without forces.
- *
- *  \internal  Generated at compile time in either C or Fortran
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel420nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL420_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel430_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel430_f77_double.c
deleted file mode 100644 (file)
index 95ee4ed..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel430_f77_double.c
- *  \brief Wrapper for fortran nonbonded kernel 430
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77dkernel430,F77DKERNEL430)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-void
-F77_FUNC(f77dkernel430nf,F77DKERNEL430NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work);
-     
-
-void
-nb_kernel430_f77_double
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      double *      shiftvec,
-      double *      fshift,     int *         gid, 
-      double *      pos,        double*       faction,
-      double *      charge,     double*       facel,
-      double *      krf,        double*       crf,  
-      double *      Vc,         int *         type,   
-      int *         ntype,      double *      vdwparam,
-      double *      Vvdw,       double*       tabscale,
-      double *      VFtab,      double*       invsqrta, 
-      double *      dvda,       double*       gbtabscale,
-      double *      GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel430,F77DKERNEL430)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel430nf_f77_double
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    double        shiftvec[],
-      double        fshift[],   int           gid[], 
-      double        pos[],      double         faction[],
-      double        charge[],   double *      facel,
-      double *      krf,        double*       crf,  
-      double        Vc[],       int           type[],   
-      int *         ntype,      double        vdwparam[],
-      double        Vvdw[],     double *      tabscale,
-      double        VFtab[],    double         invsqrta[], 
-      double        dvda[],     double *      gbtabscale,
-      double        GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      double *      work)
-{
-  F77_FUNC(f77dkernel430nf,F77DKERNEL430NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel430_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel430_f77_double.h
deleted file mode 100644 (file)
index 31dffc0..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL430_F77D_H_
-#define _NBKERNEL430_F77D_H_
-
-/*! \file  nb_kernel430_f77_double.h
- *  \brief Nonbonded kernel 430 (GB Coul + Tab VdW)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 430 with forces.
- *
- *  <b>Coulomb interaction:</b> Generalized Born<br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel430_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 430 without forces.
- *
- *  <b>Coulomb interaction:</b> Generalized Born<br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_double.h
- */
-void
-nb_kernel430nf_f77_double
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL430_F77D_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel_f77_double.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel_f77_double.c
deleted file mode 100644 (file)
index f36f988..0000000
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-
-#include "types/nrnb.h"
-#include "nb_kernel_f77_double.h"
-#include "../nb_kernel.h"
-
-
-/* Include standard kernel headers in local directory */
-#include "nb_kernel010_f77_double.h"
-#include "nb_kernel020_f77_double.h"
-#include "nb_kernel030_f77_double.h"
-#include "nb_kernel100_f77_double.h"
-#include "nb_kernel101_f77_double.h"
-#include "nb_kernel102_f77_double.h"
-#include "nb_kernel103_f77_double.h"
-#include "nb_kernel104_f77_double.h"
-#include "nb_kernel110_f77_double.h"
-#include "nb_kernel111_f77_double.h"
-#include "nb_kernel112_f77_double.h"
-#include "nb_kernel113_f77_double.h"
-#include "nb_kernel114_f77_double.h"
-#include "nb_kernel120_f77_double.h"
-#include "nb_kernel121_f77_double.h"
-#include "nb_kernel122_f77_double.h"
-#include "nb_kernel123_f77_double.h"
-#include "nb_kernel124_f77_double.h"
-#include "nb_kernel130_f77_double.h"
-#include "nb_kernel131_f77_double.h"
-#include "nb_kernel132_f77_double.h"
-#include "nb_kernel133_f77_double.h"
-#include "nb_kernel134_f77_double.h"
-#include "nb_kernel200_f77_double.h"
-#include "nb_kernel201_f77_double.h"
-#include "nb_kernel202_f77_double.h"
-#include "nb_kernel203_f77_double.h"
-#include "nb_kernel204_f77_double.h"
-#include "nb_kernel210_f77_double.h"
-#include "nb_kernel211_f77_double.h"
-#include "nb_kernel212_f77_double.h"
-#include "nb_kernel213_f77_double.h"
-#include "nb_kernel214_f77_double.h"
-#include "nb_kernel220_f77_double.h"
-#include "nb_kernel221_f77_double.h"
-#include "nb_kernel222_f77_double.h"
-#include "nb_kernel223_f77_double.h"
-#include "nb_kernel224_f77_double.h"
-#include "nb_kernel230_f77_double.h"
-#include "nb_kernel231_f77_double.h"
-#include "nb_kernel232_f77_double.h"
-#include "nb_kernel233_f77_double.h"
-#include "nb_kernel234_f77_double.h"
-#include "nb_kernel300_f77_double.h"
-#include "nb_kernel301_f77_double.h"
-#include "nb_kernel302_f77_double.h"
-#include "nb_kernel303_f77_double.h"
-#include "nb_kernel304_f77_double.h"
-#include "nb_kernel310_f77_double.h"
-#include "nb_kernel311_f77_double.h"
-#include "nb_kernel312_f77_double.h"
-#include "nb_kernel313_f77_double.h"
-#include "nb_kernel314_f77_double.h"
-#include "nb_kernel320_f77_double.h"
-#include "nb_kernel321_f77_double.h"
-#include "nb_kernel322_f77_double.h"
-#include "nb_kernel323_f77_double.h"
-#include "nb_kernel324_f77_double.h"
-#include "nb_kernel330_f77_double.h"
-#include "nb_kernel331_f77_double.h"
-#include "nb_kernel332_f77_double.h"
-#include "nb_kernel333_f77_double.h"
-#include "nb_kernel334_f77_double.h"
-#include "nb_kernel400_f77_double.h"
-#include "nb_kernel410_f77_double.h"
-#include "nb_kernel420_f77_double.h"
-#include "nb_kernel430_f77_double.h"
-
-
-static nb_kernel_t *
-kernellist[eNR_NBKERNEL_NR] = 
-{
-    nb_kernel010_f77_double,
-    nb_kernel020_f77_double,
-    nb_kernel030_f77_double,
-    nb_kernel100_f77_double,
-    nb_kernel101_f77_double,
-    nb_kernel102_f77_double,
-    nb_kernel103_f77_double,
-    nb_kernel104_f77_double,
-    nb_kernel110_f77_double,
-    nb_kernel111_f77_double,
-    nb_kernel112_f77_double,
-    nb_kernel113_f77_double,
-    nb_kernel114_f77_double,
-    nb_kernel120_f77_double,
-    nb_kernel121_f77_double,
-    nb_kernel122_f77_double,
-    nb_kernel123_f77_double,
-    nb_kernel124_f77_double,
-    nb_kernel130_f77_double,
-    nb_kernel131_f77_double,
-    nb_kernel132_f77_double,
-    nb_kernel133_f77_double,
-    nb_kernel134_f77_double,
-    nb_kernel200_f77_double,
-    nb_kernel201_f77_double,
-    nb_kernel202_f77_double,
-    nb_kernel203_f77_double,
-    nb_kernel204_f77_double,
-    nb_kernel210_f77_double,
-    nb_kernel211_f77_double,
-    nb_kernel212_f77_double,
-    nb_kernel213_f77_double,
-    nb_kernel214_f77_double,
-    nb_kernel220_f77_double,
-    nb_kernel221_f77_double,
-    nb_kernel222_f77_double,
-    nb_kernel223_f77_double,
-    nb_kernel224_f77_double,
-    nb_kernel230_f77_double,
-    nb_kernel231_f77_double,
-    nb_kernel232_f77_double,
-    nb_kernel233_f77_double,
-    nb_kernel234_f77_double,
-    nb_kernel300_f77_double,
-    nb_kernel301_f77_double,
-    nb_kernel302_f77_double,
-    nb_kernel303_f77_double,
-    nb_kernel304_f77_double,
-    nb_kernel310_f77_double,
-    nb_kernel311_f77_double,
-    nb_kernel312_f77_double,
-    nb_kernel313_f77_double,
-    nb_kernel314_f77_double,
-    nb_kernel320_f77_double,
-    nb_kernel321_f77_double,
-    nb_kernel322_f77_double,
-    nb_kernel323_f77_double,
-    nb_kernel324_f77_double,
-    nb_kernel330_f77_double,
-    nb_kernel331_f77_double,
-    nb_kernel332_f77_double,
-    nb_kernel333_f77_double,
-    nb_kernel334_f77_double,
-    nb_kernel400_f77_double,
-    nb_kernel410_f77_double,
-    nb_kernel430_f77_double,
-    nb_kernel010nf_f77_double,
-    nb_kernel020nf_f77_double,
-    nb_kernel030nf_f77_double,
-    nb_kernel100nf_f77_double,
-    nb_kernel101nf_f77_double,
-    nb_kernel102nf_f77_double,
-    nb_kernel103nf_f77_double,
-    nb_kernel104nf_f77_double,
-    nb_kernel110nf_f77_double,
-    nb_kernel111nf_f77_double,
-    nb_kernel112nf_f77_double,
-    nb_kernel113nf_f77_double,
-    nb_kernel114nf_f77_double,
-    nb_kernel120nf_f77_double,
-    nb_kernel121nf_f77_double,
-    nb_kernel122nf_f77_double,
-    nb_kernel123nf_f77_double,
-    nb_kernel124nf_f77_double,
-    nb_kernel130nf_f77_double,
-    nb_kernel131nf_f77_double,
-    nb_kernel132nf_f77_double,
-    nb_kernel133nf_f77_double,
-    nb_kernel134nf_f77_double,
-    nb_kernel200nf_f77_double,
-    nb_kernel201nf_f77_double,
-    nb_kernel202nf_f77_double,
-    nb_kernel203nf_f77_double,
-    nb_kernel204nf_f77_double,
-    nb_kernel210nf_f77_double,
-    nb_kernel211nf_f77_double,
-    nb_kernel212nf_f77_double,
-    nb_kernel213nf_f77_double,
-    nb_kernel214nf_f77_double,
-    nb_kernel220nf_f77_double,
-    nb_kernel221nf_f77_double,
-    nb_kernel222nf_f77_double,
-    nb_kernel223nf_f77_double,
-    nb_kernel224nf_f77_double,
-    nb_kernel230nf_f77_double,
-    nb_kernel231nf_f77_double,
-    nb_kernel232nf_f77_double,
-    nb_kernel233nf_f77_double,
-    nb_kernel234nf_f77_double,
-    nb_kernel300nf_f77_double,
-    nb_kernel301nf_f77_double,
-    nb_kernel302nf_f77_double,
-    nb_kernel303nf_f77_double,
-    nb_kernel304nf_f77_double,
-    nb_kernel310nf_f77_double,
-    nb_kernel311nf_f77_double,
-    nb_kernel312nf_f77_double,
-    nb_kernel313nf_f77_double,
-    nb_kernel314nf_f77_double,
-    nb_kernel320nf_f77_double,
-    nb_kernel321nf_f77_double,
-    nb_kernel322nf_f77_double,
-    nb_kernel323nf_f77_double,
-    nb_kernel324nf_f77_double,
-    nb_kernel330nf_f77_double,
-    nb_kernel331nf_f77_double,
-    nb_kernel332nf_f77_double,
-    nb_kernel333nf_f77_double,
-    nb_kernel334nf_f77_double,
-    nb_kernel400nf_f77_double,
-    nb_kernel410nf_f77_double,
-    nb_kernel430nf_f77_double,
-};
-
-
-void
-nb_kernel_setup_f77_double(FILE *log,nb_kernel_t **list)
-{
-  int i;
-  nb_kernel_t *p;
-  
-  if(log)
-    fprintf(log,"Configuring double precision Fortran kernels...\n");
-  
-  for(i=0;i<eNR_NBKERNEL_NR;i++)
-  {
-      p = kernellist[i];
-      if(p!=NULL)
-       list[i] = p; 
-  }
-}    
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel_f77_double.h b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel_f77_double.h
deleted file mode 100644 (file)
index 18a5f3e..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL_F77D_H_
-#define _NBKERNEL_F77D_H_
-
-/** The vanilla nonbonded Gromacs kernels (portable, written in C).
- * 
- *  \file  nb_kernel_f77_double.h
- *
- *  \internal
- */
-
-#include <stdio.h>
-
-#include "../nb_kernel.h"
-
-void
-nb_kernel_setup_f77_double(FILE *fplog,nb_kernel_t **list);
-
-#endif /* _NBKERNEL_F77D_H_ */
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel_f77sync.c b/src/gmxlib/nonbonded/nb_kernel_f77_double/nb_kernel_f77sync.c
deleted file mode 100644 (file)
index cc18753..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifdef HAVE_PTHREAD_H
-#include <pthread.h>
-#endif
-
-#include <stdio.h>
-
-/*! \brief Lock innerloop mutex and read lists indices
- *
- *  \internal
- *
- *  This routine is only used when both Fortran innerloops
- *  and threads are enabled.
- *
- *  Since the Fortran77 standard does not include support
- *  for POSIX threads, we call this routine instead which
- *
- *    -  Locks the provided mutex
- *    -  Reads the counter from memory
- *    -  Advances the counter in successively smaller chunks
- *    -  Releases the mutex
- *
- *  In other words, it performs exactly the same action as
- *  we do natively in the nonbonded kernel outer loop 
- *  when using C language for the kernels.
- *
- * Fortran does not know anything about a mutex, but since
- * arguments are passed by reference we mask it as a pointer
- * to an integer in the Fortran code.
- *
- * \param mtx       Pointer to the mutex to use, masked as int
- * \param count     Pointer to the outer loop counter
- * \param nri       Total umber of (outer loop) neighborlists
- * \param nthreads  Number of working threads
- * \param nn0       Returned value: Low index to use for outerloop 
- * \param nn1       Returned value: High index to use for outerloop
- *
- * \warning There is one possible cause of problems. Some
- *          fortran compilers make all variables static by
- *          default, and that will obviously screw up
- *          multithreading in a major way. If your Fortran
- *          compiler does this you only have two alternatives:
- *          Either find the flag to turn it off, or compile
- *          Gromacs without any Fortran nonbonded kernels.
- */
-void 
-F77_FUNC(f77kernelsync,F77KERNELSYNC)
-     (int *       mtx,
-      int *       count,
-      int *       nri,
-      int *       nthreads,
-      int *       nn0,
-      int *       nn1)
-{
-  int n0,n1;
-        
-    
-#ifdef HAVE_PTHREADS_H  
-  pthread_mutex_lock((pthread_mutex_t *)mtx);
-#endif
-  n0              = *count;
-  /* Take successively smaller chunks */
-  n1              = n0+((*nri)-n0)/(2*(*nthreads))+3;
-  *count          = n1;
-#ifdef HAVE_PTHREADS_H
-  pthread_mutex_unlock((pthread_mutex_t *)mtx);
-#endif
-  *nn0            = n0;
-  *nn1            = n1;
-}
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel010.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel010.f
deleted file mode 100644 (file)
index 3b09d39..0000000
+++ /dev/null
@@ -1,385 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel010
-C Coulomb interaction:     Not calculated
-C VdW interaction:         Lennard-Jones
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77skernel010(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11
-      real*4        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 33 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel010nf
-C Coulomb interaction:     Not calculated
-C VdW interaction:         Lennard-Jones
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77skernel010nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        ix1,iy1,iz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11
-      real*4        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Inner loop uses 19 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 4 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel020.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel020.f
deleted file mode 100644 (file)
index 4efc821..0000000
+++ /dev/null
@@ -1,391 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel020
-C Coulomb interaction:     Not calculated
-C VdW interaction:         Buckingham
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77skernel020(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,cexp1,cexp2
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          nti              = 3*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 61 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel020nf
-C Coulomb interaction:     Not calculated
-C VdW interaction:         Buckingham
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77skernel020nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,cexp1,cexp2
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          nti              = 3*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Inner loop uses 48 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 4 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel030.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel030.f
deleted file mode 100644 (file)
index 34133f2..0000000
+++ /dev/null
@@ -1,441 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel030
-C Coulomb interaction:     Not calculated
-C VdW interaction:         Tabulated
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77skernel030(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijD,fijR
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 54 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel030nf
-C Coulomb interaction:     Not calculated
-C VdW interaction:         Tabulated
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77skernel030nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        ix1,iy1,iz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Inner loop uses 33 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 4 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel100.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel100.f
deleted file mode 100644 (file)
index 1072b3a..0000000
+++ /dev/null
@@ -1,369 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel100
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Not calculated
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77skernel100(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 27 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel100nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Not calculated
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77skernel100nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      real*4        ix1,iy1,iz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 16 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 5 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel101.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel101.f
deleted file mode 100644 (file)
index aeb5cdb..0000000
+++ /dev/null
@@ -1,491 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel101
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Not calculated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel101(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 80 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel101nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Not calculated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel101nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 47 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel102.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel102.f
deleted file mode 100644 (file)
index 48f89b5..0000000
+++ /dev/null
@@ -1,769 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel102
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Not calculated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel102(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv12*rinv12   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv12       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv13*rinv13   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv13       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 234 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel102nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Not calculated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel102nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        qq,vcoul,vctot
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv12       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv13       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 135 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel103.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel103.f
deleted file mode 100644 (file)
index 593f829..0000000
+++ /dev/null
@@ -1,491 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel103
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Not calculated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel103(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-            rinvsq           = rinv41*rinv41   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv41       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 80 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel103nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Not calculated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel103nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx1,jy1,jz1
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv41       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 47 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel104.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel104.f
deleted file mode 100644 (file)
index da05c24..0000000
+++ /dev/null
@@ -1,769 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel104
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Not calculated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel104(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv24*rinv24   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv24       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv34*rinv34   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv34       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv42*rinv42   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv42       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv43*rinv43   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv43       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-            rinvsq           = rinv44*rinv44   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv44       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 234 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel104nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Not calculated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel104nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        qq,vcoul,vctot
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        jx4,jy4,jz4
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv24       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv34       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv42       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv43       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv44       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 135 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel110.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel110.f
deleted file mode 100644 (file)
index f5c3f06..0000000
+++ /dev/null
@@ -1,408 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel110
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Lennard-Jones
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77skernel110(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (vcoul+12.0*Vvdw12-6.0*Vvdw6)
-     &  *rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 38 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 12 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel110nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Lennard-Jones
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77skernel110nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        ix1,iy1,iz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Inner loop uses 24 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel111.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel111.f
deleted file mode 100644 (file)
index 773de25..0000000
+++ /dev/null
@@ -1,530 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel111
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Lennard-Jones
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel111(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (vcoul+12.0*Vvdw12-6.0*Vvdw6)
-     &  *rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 91 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel111nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Lennard-Jones
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel111nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 55 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel112.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel112.f
deleted file mode 100644 (file)
index eadc4b9..0000000
+++ /dev/null
@@ -1,804 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel112
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel112(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (vcoul+12.0*Vvdw12-6.0*Vvdw6)
-     &  *rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv12*rinv12   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv12       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv13*rinv13   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv13       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 245 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel112nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel112nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv12       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv13       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 143 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel113.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel113.f
deleted file mode 100644 (file)
index 4c89d6f..0000000
+++ /dev/null
@@ -1,574 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel113
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Lennard-Jones
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel113(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx11,dy11,dz11,rsq11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-            rinvsq           = rinv41*rinv41   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv41       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 113 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel113nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Lennard-Jones
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel113nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv41       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 66 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel114.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel114.f
deleted file mode 100644 (file)
index efa3afb..0000000
+++ /dev/null
@@ -1,856 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel114
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel114(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*4        dx11,dy11,dz11,rsq11
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv24*rinv24   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv24       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv34*rinv34   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv34       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv42*rinv42   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv42       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv43*rinv43   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv43       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-            rinvsq           = rinv44*rinv44   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv44       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 267 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel114nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel114nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        jx4,jy4,jz4
-      real*4        dx11,dy11,dz11,rsq11
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv24       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv34       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv42       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv43       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv44       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 154 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel120.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel120.f
deleted file mode 100644 (file)
index 097026d..0000000
+++ /dev/null
@@ -1,411 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel120
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Buckingham
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77skernel120(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,cexp1,cexp2
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 3*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (vcoul+br*Vvdwexp-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 64 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 12 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel120nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Buckingham
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77skernel120nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,cexp1,cexp2
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 3*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Inner loop uses 51 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel121.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel121.f
deleted file mode 100644 (file)
index e2eb510..0000000
+++ /dev/null
@@ -1,533 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel121
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Buckingham
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel121(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (vcoul+br*Vvdwexp-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 117 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel121nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Buckingham
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel121nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 82 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel122.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel122.f
deleted file mode 100644 (file)
index af8b098..0000000
+++ /dev/null
@@ -1,807 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel122
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Buckingham
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel122(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (vcoul+br*Vvdwexp-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv12*rinv12   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv12       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv13*rinv13   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv13       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 271 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel122nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Buckingham
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel122nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv12       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv13       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 170 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel123.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel123.f
deleted file mode 100644 (file)
index 83c731d..0000000
+++ /dev/null
@@ -1,580 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel123
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Buckingham
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel123(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-            rinvsq           = rinv41*rinv41   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv41       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 141 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel123nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Buckingham
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel123nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv41       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 95 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel124.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel124.f
deleted file mode 100644 (file)
index 58fb7f7..0000000
+++ /dev/null
@@ -1,862 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel124
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Buckingham
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel124(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv24*rinv24   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv24       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv34*rinv34   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv34       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv42*rinv42   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv42       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv43*rinv43   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv43       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-            rinvsq           = rinv44*rinv44   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv44       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 295 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel124nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Buckingham
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel124nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        jx4,jy4,jz4
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv24       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv34       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv42       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv43       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv44       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 183 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel130.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel130.f
deleted file mode 100644 (file)
index 90ec9b1..0000000
+++ /dev/null
@@ -1,464 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel130
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Tabulated
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77skernel130(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijD,fijR
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = (vcoul)*rinvsq-((fijD+fijR)
-     &  *tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 59 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 12 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel130nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Tabulated
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77skernel130nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        ix1,iy1,iz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Inner loop uses 36 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel131.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel131.f
deleted file mode 100644 (file)
index c1d2d00..0000000
+++ /dev/null
@@ -1,586 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel131
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Tabulated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel131(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijD,fijR
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = (vcoul)*rinvsq-((fijD+fijR)
-     &  *tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 112 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel131nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Tabulated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel131nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 67 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel132.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel132.f
deleted file mode 100644 (file)
index e560628..0000000
+++ /dev/null
@@ -1,860 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel132
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Tabulated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel132(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijD,fijR
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = (vcoul)*rinvsq-((fijD+fijR)
-     &  *tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv12*rinv12   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv12       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv13*rinv13   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv13       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 266 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel132nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Tabulated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel132nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv11       
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv12       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv13       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 155 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel133.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel133.f
deleted file mode 100644 (file)
index f779cd2..0000000
+++ /dev/null
@@ -1,631 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel133
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Tabulated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel133(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijD,fijR
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-            rinvsq           = rinv41*rinv41   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv41       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 134 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel133nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Tabulated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel133nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv21       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb interaction
-            vcoul            = qq*rinv31       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Coulomb interaction
-            vcoul            = qq*rinv41       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 80 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel134.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel134.f
deleted file mode 100644 (file)
index 32d3fa1..0000000
+++ /dev/null
@@ -1,913 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel134
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Tabulated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel134(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijD,fijR
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv24*rinv24   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv24       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv34*rinv34   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv34       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv42*rinv42   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv42       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv43*rinv43   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv43       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-            rinvsq           = rinv44*rinv44   
-
-C          Coulomb interaction
-            vcoul            = qq*rinv44       
-            vctot            = vctot+vcoul     
-            fscal            = (vcoul)*rinvsq  
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 288 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel134nf
-C Coulomb interaction:     Normal Coulomb
-C VdW interaction:         Tabulated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel134nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        jx4,jy4,jz4
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv22       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv23       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv24       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv32       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv33       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv34       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv42       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv43       
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Coulomb interaction
-            vcoul            = qq*rinv44       
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 168 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel200.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel200.f
deleted file mode 100644 (file)
index 5269b7a..0000000
+++ /dev/null
@@ -1,373 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel200
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Not calculated
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77skernel200(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      real*4        krsq
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv11-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 33 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel200nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Not calculated
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77skernel200nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      real*4        krsq
-      real*4        ix1,iy1,iz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 19 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 5 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel201.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel201.f
deleted file mode 100644 (file)
index 285e504..0000000
+++ /dev/null
@@ -1,499 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel201
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Not calculated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel201(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      real*4        krsq
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv11-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 98 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel201nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Not calculated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel201nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      real*4        krsq
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 56 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel202.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel202.f
deleted file mode 100644 (file)
index 2fef402..0000000
+++ /dev/null
@@ -1,789 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel202
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Not calculated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel202(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      real*4        krsq
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv11-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv12*rinv12   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq12       
-            vcoul            = qq*(rinv12+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv12-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv13*rinv13   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq13       
-            vcoul            = qq*(rinv13+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv13-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv22-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv23-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv32-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv33-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 288 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel202nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Not calculated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel202nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        qq,vcoul,vctot
-      real*4        krsq
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq12       
-            vcoul            = qq*(rinv12+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq13       
-            vcoul            = qq*(rinv13+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 162 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel203.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel203.f
deleted file mode 100644 (file)
index e390c21..0000000
+++ /dev/null
@@ -1,499 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel203
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Not calculated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel203(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      real*4        krsq
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-            rinvsq           = rinv41*rinv41   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq41       
-            vcoul            = qq*(rinv41+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv41-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 98 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel203nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Not calculated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel203nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      real*4        krsq
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx1,jy1,jz1
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq41       
-            vcoul            = qq*(rinv41+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 56 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel204.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel204.f
deleted file mode 100644 (file)
index d309ca9..0000000
+++ /dev/null
@@ -1,789 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel204
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Not calculated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel204(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      real*4        krsq
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv22-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv23-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv24*rinv24   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq24       
-            vcoul            = qq*(rinv24+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv24-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv32-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv33-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv34*rinv34   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq34       
-            vcoul            = qq*(rinv34+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv34-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv42*rinv42   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq42       
-            vcoul            = qq*(rinv42+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv42-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv43*rinv43   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq43       
-            vcoul            = qq*(rinv43+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv43-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-            rinvsq           = rinv44*rinv44   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq44       
-            vcoul            = qq*(rinv44+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv44-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 288 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel204nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Not calculated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel204nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        qq,vcoul,vctot
-      real*4        krsq
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        jx4,jy4,jz4
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq24       
-            vcoul            = qq*(rinv24+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq34       
-            vcoul            = qq*(rinv34+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq42       
-            vcoul            = qq*(rinv42+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq43       
-            vcoul            = qq*(rinv43+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq44       
-            vcoul            = qq*(rinv44+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 162 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel210.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel210.f
deleted file mode 100644 (file)
index fa8995f..0000000
+++ /dev/null
@@ -1,412 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel210
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Lennard-Jones
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77skernel210(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        krsq
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (qq*(rinv11-2.0*krsq)+12.0*Vvdw12
-     &  -6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 44 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 12 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel210nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Lennard-Jones
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77skernel210nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        krsq
-      real*4        ix1,iy1,iz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Inner loop uses 27 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel211.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel211.f
deleted file mode 100644 (file)
index 62ece69..0000000
+++ /dev/null
@@ -1,538 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel211
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Lennard-Jones
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel211(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        krsq
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (qq*(rinv11-2.0*krsq)+12.0*Vvdw12
-     &  -6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 109 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel211nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Lennard-Jones
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel211nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        krsq
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 64 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel212.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel212.f
deleted file mode 100644 (file)
index 383b8ca..0000000
+++ /dev/null
@@ -1,824 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel212
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel212(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        krsq
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (qq*(rinv11-2.0*krsq)+12.0*Vvdw12
-     &  -6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv12*rinv12   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq12       
-            vcoul            = qq*(rinv12+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv12-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv13*rinv13   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq13       
-            vcoul            = qq*(rinv13+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv13-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv22-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv23-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv32-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv33-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 299 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel212nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel212nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        krsq
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq12       
-            vcoul            = qq*(rinv12+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq13       
-            vcoul            = qq*(rinv13+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 170 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel213.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel213.f
deleted file mode 100644 (file)
index 9092ed3..0000000
+++ /dev/null
@@ -1,582 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel213
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Lennard-Jones
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel213(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        krsq
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx11,dy11,dz11,rsq11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-            rinvsq           = rinv41*rinv41   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq41       
-            vcoul            = qq*(rinv41+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv41-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 131 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel213nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Lennard-Jones
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel213nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        krsq
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq41       
-            vcoul            = qq*(rinv41+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 75 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel214.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel214.f
deleted file mode 100644 (file)
index a505ee5..0000000
+++ /dev/null
@@ -1,876 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel214
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel214(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        krsq
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*4        dx11,dy11,dz11,rsq11
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv22-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv23-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv24*rinv24   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq24       
-            vcoul            = qq*(rinv24+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv24-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv32-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv33-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv34*rinv34   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq34       
-            vcoul            = qq*(rinv34+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv34-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv42*rinv42   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq42       
-            vcoul            = qq*(rinv42+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv42-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv43*rinv43   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq43       
-            vcoul            = qq*(rinv43+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv43-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-            rinvsq           = rinv44*rinv44   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq44       
-            vcoul            = qq*(rinv44+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv44-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 321 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel214nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel214nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        krsq
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        jx4,jy4,jz4
-      real*4        dx11,dy11,dz11,rsq11
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq24       
-            vcoul            = qq*(rinv24+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq34       
-            vcoul            = qq*(rinv34+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq42       
-            vcoul            = qq*(rinv42+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq43       
-            vcoul            = qq*(rinv43+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq44       
-            vcoul            = qq*(rinv44+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 181 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel220.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel220.f
deleted file mode 100644 (file)
index b4fd60b..0000000
+++ /dev/null
@@ -1,416 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel220
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Buckingham
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77skernel220(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        krsq
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,cexp1,cexp2
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 3*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (qq*(rinv11-2.0*krsq)+br*Vvdwexp
-     &  -6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 70 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 12 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel220nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Buckingham
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77skernel220nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        krsq
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,cexp1,cexp2
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 3*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Inner loop uses 54 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel221.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel221.f
deleted file mode 100644 (file)
index 54e2fcc..0000000
+++ /dev/null
@@ -1,542 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel221
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Buckingham
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel221(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        krsq
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (qq*(rinv11-2.0*krsq)+br*Vvdwexp
-     &  -6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 135 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel221nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Buckingham
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel221nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        krsq
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 91 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel222.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel222.f
deleted file mode 100644 (file)
index b5572ee..0000000
+++ /dev/null
@@ -1,828 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel222
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Buckingham
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel222(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        krsq
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (qq*(rinv11-2.0*krsq)+br*Vvdwexp
-     &  -6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv12*rinv12   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq12       
-            vcoul            = qq*(rinv12+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv12-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv13*rinv13   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq13       
-            vcoul            = qq*(rinv13+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv13-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv22-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv23-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv32-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv33-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 325 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel222nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Buckingham
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel222nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        krsq
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq12       
-            vcoul            = qq*(rinv12+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq13       
-            vcoul            = qq*(rinv13+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 197 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel223.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel223.f
deleted file mode 100644 (file)
index 95064c4..0000000
+++ /dev/null
@@ -1,588 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel223
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Buckingham
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel223(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        krsq
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-            rinvsq           = rinv41*rinv41   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq41       
-            vcoul            = qq*(rinv41+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv41-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 159 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel223nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Buckingham
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel223nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        krsq
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq41       
-            vcoul            = qq*(rinv41+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 104 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel224.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel224.f
deleted file mode 100644 (file)
index f28f3d9..0000000
+++ /dev/null
@@ -1,882 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel224
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Buckingham
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel224(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        krsq
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv22-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv23-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv24*rinv24   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq24       
-            vcoul            = qq*(rinv24+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv24-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv32-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv33-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv34*rinv34   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq34       
-            vcoul            = qq*(rinv34+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv34-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv42*rinv42   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq42       
-            vcoul            = qq*(rinv42+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv42-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv43*rinv43   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq43       
-            vcoul            = qq*(rinv43+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv43-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-            rinvsq           = rinv44*rinv44   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq44       
-            vcoul            = qq*(rinv44+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv44-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 349 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel224nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Buckingham
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel224nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        krsq
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        jx4,jy4,jz4
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq24       
-            vcoul            = qq*(rinv24+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq34       
-            vcoul            = qq*(rinv34+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq42       
-            vcoul            = qq*(rinv42+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq43       
-            vcoul            = qq*(rinv43+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq44       
-            vcoul            = qq*(rinv44+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 210 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel230.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel230.f
deleted file mode 100644 (file)
index 77fb0ac..0000000
+++ /dev/null
@@ -1,468 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel230
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Tabulated
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77skernel230(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijD,fijR
-      real*4        krsq
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = (qq*(rinv11-2.0*krsq))*rinvsq
-     &  -((fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 65 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 12 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel230nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Tabulated
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77skernel230nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        krsq
-      real*4        ix1,iy1,iz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Inner loop uses 39 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel231.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel231.f
deleted file mode 100644 (file)
index 6bad062..0000000
+++ /dev/null
@@ -1,594 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel231
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Tabulated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel231(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijD,fijR
-      real*4        krsq
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = (qq*(rinv11-2.0*krsq))*rinvsq
-     &  -((fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 130 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel231nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Tabulated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel231nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        krsq
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 76 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel232.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel232.f
deleted file mode 100644 (file)
index fdd7e5e..0000000
+++ /dev/null
@@ -1,880 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel232
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Tabulated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel232(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijD,fijR
-      real*4        krsq
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = (qq*(rinv11-2.0*krsq))*rinvsq
-     &  -((fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv12*rinv12   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq12       
-            vcoul            = qq*(rinv12+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv12-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv13*rinv13   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq13       
-            vcoul            = qq*(rinv13+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv13-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv22-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv23-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv32-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv33-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 320 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel232nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Tabulated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel232nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        krsq
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq11       
-            vcoul            = qq*(rinv11+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq12       
-            vcoul            = qq*(rinv12+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq13       
-            vcoul            = qq*(rinv13+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 182 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel233.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel233.f
deleted file mode 100644 (file)
index 06751ff..0000000
+++ /dev/null
@@ -1,639 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel233
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Tabulated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel233(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijD,fijR
-      real*4        krsq
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-            rinvsq           = rinv21*rinv21   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv21-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            rinvsq           = rinv31*rinv31   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv31-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-            rinvsq           = rinv41*rinv41   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq41       
-            vcoul            = qq*(rinv41+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv41-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 152 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel233nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Tabulated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel233nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        krsq
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq21       
-            vcoul            = qq*(rinv21+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq31       
-            vcoul            = qq*(rinv31+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq41       
-            vcoul            = qq*(rinv41+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 89 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel234.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel234.f
deleted file mode 100644 (file)
index 1c54d1e..0000000
+++ /dev/null
@@ -1,933 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel234
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Tabulated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel234(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijD,fijR
-      real*4        krsq
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv22*rinv22   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv22-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv23*rinv23   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv23-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv24*rinv24   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq24       
-            vcoul            = qq*(rinv24+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv24-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv32*rinv32   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv32-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-            rinvsq           = rinv33*rinv33   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv33-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv34*rinv34   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq34       
-            vcoul            = qq*(rinv34+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv34-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv42*rinv42   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq42       
-            vcoul            = qq*(rinv42+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv42-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-            rinvsq           = rinv43*rinv43   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq43       
-            vcoul            = qq*(rinv43+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv43-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-            rinvsq           = rinv44*rinv44   
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq44       
-            vcoul            = qq*(rinv44+krsq-crf)
-            vctot            = vctot+vcoul     
-            fscal            = (qq*(rinv44-2.0*krsq))*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 342 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel234nf
-C Coulomb interaction:     Reaction field
-C VdW interaction:         Tabulated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel234nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        krsq
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        jx4,jy4,jz4
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq22       
-            vcoul            = qq*(rinv22+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq23       
-            vcoul            = qq*(rinv23+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq24       
-            vcoul            = qq*(rinv24+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq32       
-            vcoul            = qq*(rinv32+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq33       
-            vcoul            = qq*(rinv33+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq34       
-            vcoul            = qq*(rinv34+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq42       
-            vcoul            = qq*(rinv42+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq43       
-            vcoul            = qq*(rinv43+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Coulomb reaction-field interaction
-            krsq             = krf*rsq44       
-            vcoul            = qq*(rinv44+krsq-crf)
-            vctot            = vctot+vcoul     
-
-C          Inner loop uses 195 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel300.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel300.f
deleted file mode 100644 (file)
index cff3992..0000000
+++ /dev/null
@@ -1,409 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel300
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Not calculated
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77skernel300(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 42 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel300nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Not calculated
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77skernel300nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        ix1,iy1,iz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 26 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 5 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel301.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel301.f
deleted file mode 100644 (file)
index 22c7441..0000000
+++ /dev/null
@@ -1,597 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel301
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Not calculated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel301(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 125 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel301nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Not calculated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel301nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 77 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel302.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel302.f
deleted file mode 100644 (file)
index d5ff503..0000000
+++ /dev/null
@@ -1,1073 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel302
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Not calculated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel302(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        qq,vcoul,vctot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq12*rinv12    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv12
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq13*rinv13    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv13
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv22
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv23
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv32
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv33
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 369 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel302nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Not calculated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel302nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        qq,vcoul,vctot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq12*rinv12    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq13*rinv13    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 225 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel303.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel303.f
deleted file mode 100644 (file)
index 1f33a77..0000000
+++ /dev/null
@@ -1,597 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel303
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Not calculated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel303(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Calculate table index
-            r                = rsq41*rinv41    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv41
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 125 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel303nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Not calculated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel303nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx1,jy1,jz1
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Calculate table index
-            r                = rsq41*rinv41    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 77 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel304.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel304.f
deleted file mode 100644 (file)
index c3986bc..0000000
+++ /dev/null
@@ -1,1073 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel304
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Not calculated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel304(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        qq,vcoul,vctot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv22
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv23
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq24*rinv24    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv24
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv32
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv33
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq34*rinv34    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv34
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq42*rinv42    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv42
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq43*rinv43    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv43
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Calculate table index
-            r                = rsq44*rinv44    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv44
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 369 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 28 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel304nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Not calculated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel304nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        qq,vcoul,vctot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        jx4,jy4,jz4
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq24*rinv24    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq34*rinv34    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq42*rinv42    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq43*rinv43    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Calculate table index
-            r                = rsq44*rinv44    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 225 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 10 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel310.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel310.f
deleted file mode 100644 (file)
index 57e22a6..0000000
+++ /dev/null
@@ -1,450 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel310
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Lennard-Jones
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77skernel310(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-     &  -((fijC)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 55 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 12 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel310nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Lennard-Jones
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77skernel310nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        ix1,iy1,iz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Inner loop uses 34 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel311.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel311.f
deleted file mode 100644 (file)
index d101e1f..0000000
+++ /dev/null
@@ -1,638 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel311
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Lennard-Jones
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel311(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-     &  -((fijC)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 138 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel311nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Lennard-Jones
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel311nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 85 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel312.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel312.f
deleted file mode 100644 (file)
index c426ff8..0000000
+++ /dev/null
@@ -1,1110 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel312
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel312(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-     &  -((fijC)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq12*rinv12    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv12
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq13*rinv13    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv13
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv22
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv23
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv32
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv33
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 382 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel312nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel312nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq12*rinv12    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq13*rinv13    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 233 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel313.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel313.f
deleted file mode 100644 (file)
index 96576cb..0000000
+++ /dev/null
@@ -1,681 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel313
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Lennard-Jones
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel313(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx11,dy11,dz11,rsq11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Calculate table index
-            r                = rsq41*rinv41    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv41
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 158 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel313nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Lennard-Jones
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel313nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Calculate table index
-            r                = rsq41*rinv41    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 96 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel314.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel314.f
deleted file mode 100644 (file)
index 3773495..0000000
+++ /dev/null
@@ -1,1161 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel314
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel314(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*4        dx11,dy11,dz11,rsq11
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv22
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv23
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq24*rinv24    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv24
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv32
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv33
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq34*rinv34    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv34
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq42*rinv42    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv42
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq43*rinv43    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv43
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Calculate table index
-            r                = rsq44*rinv44    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv44
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 402 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel314nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Lennard-Jones
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel314nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        jx4,jy4,jz4
-      real*4        dx11,dy11,dz11,rsq11
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinvsq           = 1.0/rsq11       
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq24*rinv24    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq34*rinv34    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq42*rinv42    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq43*rinv43    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Calculate table index
-            r                = rsq44*rinv44    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 244 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel320.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel320.f
deleted file mode 100644 (file)
index 69da0ca..0000000
+++ /dev/null
@@ -1,454 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel320
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Buckingham
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77skernel320(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,cexp1,cexp2
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 3*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-     &  -((fijC)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 81 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 12 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel320nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Buckingham
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77skernel320nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,cexp1,cexp2
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 3*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Inner loop uses 61 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel321.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel321.f
deleted file mode 100644 (file)
index 6a8345c..0000000
+++ /dev/null
@@ -1,642 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel321
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Buckingham
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel321(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-     &  -((fijC)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 164 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel321nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Buckingham
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel321nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 112 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel322.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel322.f
deleted file mode 100644 (file)
index 666c433..0000000
+++ /dev/null
@@ -1,1114 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel322
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Buckingham
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel322(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-     &  -((fijC)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq12*rinv12    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv12
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq13*rinv13    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv13
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv22
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv23
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv32
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv33
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 408 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel322nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Buckingham
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel322nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-            rinvsq           = rinv11*rinv11   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq12*rinv12    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq13*rinv13    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 260 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel323.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel323.f
deleted file mode 100644 (file)
index 582a499..0000000
+++ /dev/null
@@ -1,687 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel323
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Buckingham
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel323(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Calculate table index
-            r                = rsq41*rinv41    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv41
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 186 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel323nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Buckingham
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel323nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 3*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Calculate table index
-            r                = rsq41*rinv41    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 125 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel324.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel324.f
deleted file mode 100644 (file)
index c638085..0000000
+++ /dev/null
@@ -1,1167 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel324
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Buckingham
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel324(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv22
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv23
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq24*rinv24    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv24
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv32
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv33
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq34*rinv34    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv34
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq42*rinv42    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv42
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq43*rinv43    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv43
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Calculate table index
-            r                = rsq44*rinv44    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv44
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 430 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel324nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Buckingham
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel324nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        jx4,jy4,jz4
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-      real*4        c6,cexp1,cexp2
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 3*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      cexp1            = vdwparam(tj+1)  
-      cexp2            = vdwparam(tj+2)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-            rinvsq           = rinv11*rinv11   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq24*rinv24    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq34*rinv34    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq42*rinv42    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq43*rinv43    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Calculate table index
-            r                = rsq44*rinv44    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 273 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel330.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel330.f
deleted file mode 100644 (file)
index 024cae4..0000000
+++ /dev/null
@@ -1,478 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel330
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Tabulated
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77skernel330(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        fijD,fijR
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-
-C          Tabulated VdW interaction - dispersion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijC+fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 68 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 12 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel330nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Tabulated
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77skernel330nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        ix1,iy1,iz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            qq               = iq*charge(jnr)  
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Tabulated VdW interaction - dispersion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Inner loop uses 42 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel331.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel331.f
deleted file mode 100644 (file)
index c5c1bc8..0000000
+++ /dev/null
@@ -1,666 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel331
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Tabulated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel331(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        fijD,fijR
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-
-C          Tabulated VdW interaction - dispersion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijC+fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 151 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel331nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Tabulated
-C water optimization:      SPC/TIP3P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel331nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        qO,qH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = facel*charge(ii)
-      qH               = facel*charge(ii+1)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qO*jq           
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Tabulated VdW interaction - dispersion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 93 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel332.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel332.f
deleted file mode 100644 (file)
index e978c10..0000000
+++ /dev/null
@@ -1,1138 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel332
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Tabulated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel332(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        fijD,fijR
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-
-C          Tabulated VdW interaction - dispersion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijC+fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq12*rinv12    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv12
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx12      
-            ty               = fscal*dy12      
-            tz               = fscal*dz12      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq13*rinv13    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv13
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx13      
-            ty               = fscal*dy13      
-            tz               = fscal*dz13      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv22
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv23
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv32
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv33
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Inner loop uses 395 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 29 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel332nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Tabulated
-C water optimization:      pairs of SPC/TIP3P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel332nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx12,dy12,dz12,rsq12,rinv12
-      real*4        dx13,dy13,dz13,rsq13,rinv13
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        qO,qH,qqOO,qqOH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qO               = charge(ii)      
-      qH               = charge(ii+1)    
-      qqOO             = facel*qO*qO     
-      qqOH             = facel*qO*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx12             = ix1 - jx2       
-            dy12             = iy1 - jy2       
-            dz12             = iz1 - jz2       
-            rsq12            = dx12*dx12+dy12*dy12+dz12*dz12
-            dx13             = ix1 - jx3       
-            dy13             = iy1 - jy3       
-            dz13             = iz1 - jz3       
-            rsq13            = dx13*dx13+dy13*dy13+dz13*dz13
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv12           = 1.0/sqrt(rsq12) 
-            rinv13           = 1.0/sqrt(rsq13) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-
-C          Load parameters for j atom
-            qq               = qqOO            
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Tabulated VdW interaction - dispersion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq12*rinv12    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq13*rinv13    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqOH            
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 241 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 11 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel333.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel333.f
deleted file mode 100644 (file)
index 6d3bbc4..0000000
+++ /dev/null
@@ -1,732 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel333
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Tabulated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        yes
-C
-      subroutine f77skernel333(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        fijD,fijR
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx1,jy1,jz1,fjx1,fjy1,fjz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated VdW interaction - dispersion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            fjx1             = faction(j3+0) - tx
-            fjy1             = faction(j3+1) - ty
-            fjz1             = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv21
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx21      
-            ty               = fscal*dy21      
-            tz               = fscal*dz21      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv31
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx31      
-            ty               = fscal*dy31      
-            tz               = fscal*dz31      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx1             = fjx1 - tx       
-            fjy1             = fjy1 - ty       
-            fjz1             = fjz1 - tz       
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Calculate table index
-            r                = rsq41*rinv41    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv41
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx41      
-            ty               = fscal*dy41      
-            tz               = fscal*dz41      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = fjx1 - tx       
-            faction(j3+1)    = fjy1 - ty       
-            faction(j3+2)    = fjz1 - tz       
-
-C          Inner loop uses 179 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel333nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Tabulated
-C water optimization:      TIP4P - other atoms
-C Calculate forces:        no
-C
-      subroutine f77skernel333nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        jq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx21,dy21,dz21,rsq21,rinv21
-      real*4        dx31,dy31,dz31,rsq31,rinv31
-      real*4        dx41,dy41,dz41,rsq41,rinv41
-      real*4        qH,qM
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = facel*charge(ii+1)
-      qM               = facel*charge(ii+3)
-      nti              = 2*ntype*type(ii)
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx21             = ix2 - jx1       
-            dy21             = iy2 - jy1       
-            dz21             = iz2 - jz1       
-            rsq21            = dx21*dx21+dy21*dy21+dz21*dz21
-            dx31             = ix3 - jx1       
-            dy31             = iy3 - jy1       
-            dz31             = iz3 - jz1       
-            rsq31            = dx31*dx31+dy31*dy31+dz31*dz31
-            dx41             = ix4 - jx1       
-            dy41             = iy4 - jy1       
-            dz41             = iz4 - jz1       
-            rsq41            = dx41*dx41+dy41*dy41+dz41*dz41
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv21           = 1.0/sqrt(rsq21) 
-            rinv31           = 1.0/sqrt(rsq31) 
-            rinv41           = 1.0/sqrt(rsq41) 
-
-C          Load parameters for j atom
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated VdW interaction - dispersion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            jq               = charge(jnr+0)   
-            qq               = qH*jq           
-
-C          Calculate table index
-            r                = rsq21*rinv21    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq31*rinv31    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qM*jq           
-
-C          Calculate table index
-            r                = rsq41*rinv41    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 110 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel334.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel334.f
deleted file mode 100644 (file)
index fa8534d..0000000
+++ /dev/null
@@ -1,1212 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel334
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Tabulated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        yes
-C
-      subroutine f77skernel334(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        fijD,fijR
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        ix2,iy2,iz2,fix2,fiy2,fiz2
-      real*4        ix3,iy3,iz3,fix3,fiy3,fiz3
-      real*4        ix4,iy4,iz4,fix4,fiy4,fiz4
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2,fjx2,fjy2,fjz2
-      real*4        jx3,jy3,jz3,fjx3,fjy3,fjz3
-      real*4        jx4,jy4,jz4,fjx4,fjy4,fjz4
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          fix2             = 0               
-          fiy2             = 0               
-          fiz2             = 0               
-          fix3             = 0               
-          fiy3             = 0               
-          fiz3             = 0               
-          fix4             = 0               
-          fiy4             = 0               
-          fiz4             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated VdW interaction - dispersion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijD+fijR)*tabscale)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv22
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx22      
-            ty               = fscal*dy22      
-            tz               = fscal*dz22      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx2             = faction(j3+3) - tx
-            fjy2             = faction(j3+4) - ty
-            fjz2             = faction(j3+5) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv23
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx23      
-            ty               = fscal*dy23      
-            tz               = fscal*dz23      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx3             = faction(j3+6) - tx
-            fjy3             = faction(j3+7) - ty
-            fjz3             = faction(j3+8) - tz
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq24*rinv24    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv24
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx24      
-            ty               = fscal*dy24      
-            tz               = fscal*dz24      
-
-C          Increment i atom force
-            fix2             = fix2 + tx       
-            fiy2             = fiy2 + ty       
-            fiz2             = fiz2 + tz       
-
-C          Decrement j atom force
-            fjx4             = faction(j3+9) - tx
-            fjy4             = faction(j3+10) - ty
-            fjz4             = faction(j3+11) - tz
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv32
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx32      
-            ty               = fscal*dy32      
-            tz               = fscal*dz32      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx2             = fjx2 - tx       
-            fjy2             = fjy2 - ty       
-            fjz2             = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv33
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx33      
-            ty               = fscal*dy33      
-            tz               = fscal*dz33      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx3             = fjx3 - tx       
-            fjy3             = fjy3 - ty       
-            fjz3             = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq34*rinv34    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv34
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx34      
-            ty               = fscal*dy34      
-            tz               = fscal*dz34      
-
-C          Increment i atom force
-            fix3             = fix3 + tx       
-            fiy3             = fiy3 + ty       
-            fiz3             = fiz3 + tz       
-
-C          Decrement j atom force
-            fjx4             = fjx4 - tx       
-            fjy4             = fjy4 - ty       
-            fjz4             = fjz4 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq42*rinv42    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv42
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx42      
-            ty               = fscal*dy42      
-            tz               = fscal*dz42      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+3)    = fjx2 - tx       
-            faction(j3+4)    = fjy2 - ty       
-            faction(j3+5)    = fjz2 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq43*rinv43    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv43
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx43      
-            ty               = fscal*dy43      
-            tz               = fscal*dz43      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+6)    = fjx3 - tx       
-            faction(j3+7)    = fjy3 - ty       
-            faction(j3+8)    = fjz3 - tz       
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Calculate table index
-            r                = rsq44*rinv44    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vcoul            = qq*VV           
-            fijC             = qq*FF           
-            vctot            = vctot + vcoul   
-            fscal            = -((fijC)*tabscale)*rinv44
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx44      
-            ty               = fscal*dy44      
-            tz               = fscal*dz44      
-
-C          Increment i atom force
-            fix4             = fix4 + tx       
-            fiy4             = fiy4 + ty       
-            fiz4             = fiz4 + tz       
-
-C          Decrement j atom force
-            faction(j3+9)    = fjx4 - tx       
-            faction(j3+10)   = fjy4 - ty       
-            faction(j3+11)   = fjz4 - tz       
-
-C          Inner loop uses 423 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          faction(ii3+3)   = faction(ii3+3) + fix2
-          faction(ii3+4)   = faction(ii3+4) + fiy2
-          faction(ii3+5)   = faction(ii3+5) + fiz2
-          faction(ii3+6)   = faction(ii3+6) + fix3
-          faction(ii3+7)   = faction(ii3+7) + fiy3
-          faction(ii3+8)   = faction(ii3+8) + fiz3
-          faction(ii3+9)   = faction(ii3+9) + fix4
-          faction(ii3+10)  = faction(ii3+10) + fiy4
-          faction(ii3+11)  = faction(ii3+11) + fiz4
-          fshift(is3)      = fshift(is3)+fix1+fix2+fix3+fix4
-          fshift(is3+1)    = fshift(is3+1)+fiy1+fiy2+fiy3+fiy4
-          fshift(is3+2)    = fshift(is3+2)+fiz1+fiz2+fiz3+fiz4
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 38 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel334nf
-C Coulomb interaction:     Tabulated
-C VdW interaction:         Tabulated
-C water optimization:      pairs of TIP4P interactions
-C Calculate forces:        no
-C
-      subroutine f77skernel334nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        qq,vcoul,vctot
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        ix1,iy1,iz1
-      real*4        ix2,iy2,iz2
-      real*4        ix3,iy3,iz3
-      real*4        ix4,iy4,iz4
-      real*4        jx1,jy1,jz1
-      real*4        jx2,jy2,jz2
-      real*4        jx3,jy3,jz3
-      real*4        jx4,jy4,jz4
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        dx22,dy22,dz22,rsq22,rinv22
-      real*4        dx23,dy23,dz23,rsq23,rinv23
-      real*4        dx24,dy24,dz24,rsq24,rinv24
-      real*4        dx32,dy32,dz32,rsq32,rinv32
-      real*4        dx33,dy33,dz33,rsq33,rinv33
-      real*4        dx34,dy34,dz34,rsq34,rinv34
-      real*4        dx42,dy42,dz42,rsq42,rinv42
-      real*4        dx43,dy43,dz43,rsq43,rinv43
-      real*4        dx44,dy44,dz44,rsq44,rinv44
-      real*4        qH,qM,qqMM,qqMH,qqHH
-      real*4        c6,c12
-
-
-C    Initialize water data
-      ii               = iinr(1)+1       
-      qH               = charge(ii+1)    
-      qM               = charge(ii+3)    
-      qqMM             = facel*qM*qM     
-      qqMH             = facel*qM*qH     
-      qqHH             = facel*qH*qH     
-      tj               = 2*(ntype+1)*type(ii)+1
-      c6               = vdwparam(tj)    
-      c12              = vdwparam(tj+1)  
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-          ix2              = shX + pos(ii3+3)
-          iy2              = shY + pos(ii3+4)
-          iz2              = shZ + pos(ii3+5)
-          ix3              = shX + pos(ii3+6)
-          iy3              = shY + pos(ii3+7)
-          iz3              = shZ + pos(ii3+8)
-          ix4              = shX + pos(ii3+9)
-          iy4              = shY + pos(ii3+10)
-          iz4              = shZ + pos(ii3+11)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-            jx2              = pos(j3+3)       
-            jy2              = pos(j3+4)       
-            jz2              = pos(j3+5)       
-            jx3              = pos(j3+6)       
-            jy3              = pos(j3+7)       
-            jz3              = pos(j3+8)       
-            jx4              = pos(j3+9)       
-            jy4              = pos(j3+10)      
-            jz4              = pos(j3+11)      
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-            dx22             = ix2 - jx2       
-            dy22             = iy2 - jy2       
-            dz22             = iz2 - jz2       
-            rsq22            = dx22*dx22+dy22*dy22+dz22*dz22
-            dx23             = ix2 - jx3       
-            dy23             = iy2 - jy3       
-            dz23             = iz2 - jz3       
-            rsq23            = dx23*dx23+dy23*dy23+dz23*dz23
-            dx24             = ix2 - jx4       
-            dy24             = iy2 - jy4       
-            dz24             = iz2 - jz4       
-            rsq24            = dx24*dx24+dy24*dy24+dz24*dz24
-            dx32             = ix3 - jx2       
-            dy32             = iy3 - jy2       
-            dz32             = iz3 - jz2       
-            rsq32            = dx32*dx32+dy32*dy32+dz32*dz32
-            dx33             = ix3 - jx3       
-            dy33             = iy3 - jy3       
-            dz33             = iz3 - jz3       
-            rsq33            = dx33*dx33+dy33*dy33+dz33*dz33
-            dx34             = ix3 - jx4       
-            dy34             = iy3 - jy4       
-            dz34             = iz3 - jz4       
-            rsq34            = dx34*dx34+dy34*dy34+dz34*dz34
-            dx42             = ix4 - jx2       
-            dy42             = iy4 - jy2       
-            dz42             = iz4 - jz2       
-            rsq42            = dx42*dx42+dy42*dy42+dz42*dz42
-            dx43             = ix4 - jx3       
-            dy43             = iy4 - jy3       
-            dz43             = iz4 - jz3       
-            rsq43            = dx43*dx43+dy43*dy43+dz43*dz43
-            dx44             = ix4 - jx4       
-            dy44             = iy4 - jy4       
-            dz44             = iz4 - jz4       
-            rsq44            = dx44*dx44+dy44*dy44+dz44*dz44
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-            rinv22           = 1.0/sqrt(rsq22) 
-            rinv23           = 1.0/sqrt(rsq23) 
-            rinv24           = 1.0/sqrt(rsq24) 
-            rinv32           = 1.0/sqrt(rsq32) 
-            rinv33           = 1.0/sqrt(rsq33) 
-            rinv34           = 1.0/sqrt(rsq34) 
-            rinv42           = 1.0/sqrt(rsq42) 
-            rinv43           = 1.0/sqrt(rsq43) 
-            rinv44           = 1.0/sqrt(rsq44) 
-
-C          Load parameters for j atom
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated VdW interaction - dispersion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq22*rinv22    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq23*rinv23    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq24*rinv24    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq32*rinv32    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqHH            
-
-C          Calculate table index
-            r                = rsq33*rinv33    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq34*rinv34    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq42*rinv42    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMH            
-
-C          Calculate table index
-            r                = rsq43*rinv43    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Load parameters for j atom
-            qq               = qqMM            
-
-C          Calculate table index
-            r                = rsq44*rinv44    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 12*n0+1         
-
-C          Tabulated coulomb interaction
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vcoul            = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 258 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 14 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel400.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel400.f
deleted file mode 100644 (file)
index 7cd0d34..0000000
+++ /dev/null
@@ -1,427 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel400
-C Coulomb interaction:     Generalized-Born
-C VdW interaction:         Not calculated
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77skernel400(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        isai,isaj,isaprod,gbscale,vgb
-      real*4        dvdasum,dvdatmp,dvdaj,fgb
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          isai             = invsqrta(ii)    
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          dvdasum          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            isaj             = invsqrta(jnr)   
-            isaprod          = isai*isaj       
-            qq               = iq*charge(jnr)  
-            vcoul            = qq*rinv11       
-            fscal            = vcoul*rinv11    
-            qq               = isaprod*(-qq)   
-            gbscale          = isaprod*gbtabscale
-
-C          Tabulated Generalized-Born interaction
-            dvdaj            = dvda(jnr)       
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*gbscale       
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-            Y                = GBtab(nnn)      
-            F                = GBtab(nnn+1)    
-            Geps             = eps*GBtab(nnn+2)
-            Heps2            = eps2*GBtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vgb              = qq*VV           
-            fijC             = qq*FF*gbscale   
-            dvdatmp          = -0.5*(vgb+fijC*r)
-            dvdasum          = dvdasum + dvdatmp
-            dvda(jnr)        = dvdaj+dvdatmp*isaj*isaj
-            vctot            = vctot + vcoul   
-            fscal            = -(fijC-fscal)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 49 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          dvda(ii)         = dvda(ii) + dvdasum*isai*isai
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 12 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel400nf
-C Coulomb interaction:     Generalized-Born
-C VdW interaction:         Not calculated
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77skernel400nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        isai,isaj,isaprod,gbscale,vgb
-      real*4        ix1,iy1,iz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          isai             = invsqrta(ii)    
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            isaj             = invsqrta(jnr)   
-            isaprod          = isai*isaj       
-            qq               = iq*charge(jnr)  
-            vcoul            = qq*rinv11       
-            qq               = isaprod*(-qq)   
-            gbscale          = isaprod*gbtabscale
-
-C          Tabulated Generalized-Born interaction
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*gbscale       
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-            Y                = GBtab(nnn)      
-            F                = GBtab(nnn+1)    
-            Geps             = eps*GBtab(nnn+2)
-            Heps2            = eps2*GBtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vgb              = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Inner loop uses 29 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 5 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel410.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel410.f
deleted file mode 100644 (file)
index fbbc9f1..0000000
+++ /dev/null
@@ -1,468 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel410
-C Coulomb interaction:     Generalized-Born
-C VdW interaction:         Lennard-Jones
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77skernel410(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        isai,isaj,isaprod,gbscale,vgb
-      real*4        dvdasum,dvdatmp,dvdaj,fgb
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          isai             = invsqrta(ii)    
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-          dvdasum          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            isaj             = invsqrta(jnr)   
-            isaprod          = isai*isaj       
-            qq               = iq*charge(jnr)  
-            vcoul            = qq*rinv11       
-            fscal            = vcoul*rinv11    
-            qq               = isaprod*(-qq)   
-            gbscale          = isaprod*gbtabscale
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Tabulated Generalized-Born interaction
-            dvdaj            = dvda(jnr)       
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*gbscale       
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-            Y                = GBtab(nnn)      
-            F                = GBtab(nnn+1)    
-            Geps             = eps*GBtab(nnn+2)
-            Heps2            = eps2*GBtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vgb              = qq*VV           
-            fijC             = qq*FF*gbscale   
-            dvdatmp          = -0.5*(vgb+fijC*r)
-            dvdasum          = dvdasum + dvdatmp
-            dvda(jnr)        = dvdaj+dvdatmp*isaj*isaj
-            vctot            = vctot + vcoul   
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-            fscal            = (12.0*Vvdw12-6.0*Vvdw6)*rinvsq
-     &  -(fijC-fscal)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 62 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-          dvda(ii)         = dvda(ii) + dvdasum*isai*isai
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 13 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel410nf
-C Coulomb interaction:     Generalized-Born
-C VdW interaction:         Lennard-Jones
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77skernel410nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        isai,isaj,isaprod,gbscale,vgb
-      real*4        ix1,iy1,iz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          isai             = invsqrta(ii)    
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            isaj             = invsqrta(jnr)   
-            isaprod          = isai*isaj       
-            qq               = iq*charge(jnr)  
-            vcoul            = qq*rinv11       
-            qq               = isaprod*(-qq)   
-            gbscale          = isaprod*gbtabscale
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-            rinvsq           = rinv11*rinv11   
-
-C          Tabulated Generalized-Born interaction
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*gbscale       
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-            Y                = GBtab(nnn)      
-            F                = GBtab(nnn+1)    
-            Geps             = eps*GBtab(nnn+2)
-            Heps2            = eps2*GBtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vgb              = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Lennard-Jones interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            Vvdw12           = c12*rinvsix*rinvsix
-            Vvdwtot          = Vvdwtot+Vvdw12-Vvdw6
-
-C          Inner loop uses 37 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel420.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel420.f
deleted file mode 100644 (file)
index 950d892..0000000
+++ /dev/null
@@ -1,472 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel420
-C Coulomb interaction:     Generalized-Born
-C VdW interaction:         Buckingham
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77skernel420(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        rinvsq
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        isai,isaj,isaprod,gbscale,vgb
-      real*4        dvdasum,dvdatmp,dvdaj,fgb
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,cexp1,cexp2
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          isai             = invsqrta(ii)    
-          nti              = 3*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-          dvdasum          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            isaj             = invsqrta(jnr)   
-            isaprod          = isai*isaj       
-            qq               = iq*charge(jnr)  
-            vcoul            = qq*rinv11       
-            fscal            = vcoul*rinv11    
-            qq               = isaprod*(-qq)   
-            gbscale          = isaprod*gbtabscale
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Tabulated Generalized-Born interaction
-            dvdaj            = dvda(jnr)       
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*gbscale       
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-            Y                = GBtab(nnn)      
-            F                = GBtab(nnn+1)    
-            Geps             = eps*GBtab(nnn+2)
-            Heps2            = eps2*GBtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vgb              = qq*VV           
-            fijC             = qq*FF*gbscale   
-            dvdatmp          = -0.5*(vgb+fijC*r)
-            dvdasum          = dvdasum + dvdatmp
-            dvda(jnr)        = dvdaj+dvdatmp*isaj*isaj
-            vctot            = vctot + vcoul   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-            fscal            = (br*Vvdwexp-6.0*Vvdw6)*rinvsq
-     &  -(fijC-fscal)*rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 88 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-          dvda(ii)         = dvda(ii) + dvdasum*isai*isai
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 13 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel420nf
-C Coulomb interaction:     Generalized-Born
-C VdW interaction:         Buckingham
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77skernel420nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        rinvsq
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        rinvsix
-      real*4        Vvdw6,Vvdwtot
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        isai,isaj,isaprod,gbscale,vgb
-      real*4        Vvdwexp,br
-      real*4        ix1,iy1,iz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,cexp1,cexp2
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          isai             = invsqrta(ii)    
-          nti              = 3*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            isaj             = invsqrta(jnr)   
-            isaprod          = isai*isaj       
-            qq               = iq*charge(jnr)  
-            vcoul            = qq*rinv11       
-            qq               = isaprod*(-qq)   
-            gbscale          = isaprod*gbtabscale
-            tj               = nti+3*type(jnr)+1
-            c6               = vdwparam(tj)    
-            cexp1            = vdwparam(tj+1)  
-            cexp2            = vdwparam(tj+2)  
-            rinvsq           = rinv11*rinv11   
-
-C          Tabulated Generalized-Born interaction
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*gbscale       
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-            Y                = GBtab(nnn)      
-            F                = GBtab(nnn+1)    
-            Geps             = eps*GBtab(nnn+2)
-            Heps2            = eps2*GBtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vgb              = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Buckingham interaction
-            rinvsix          = rinvsq*rinvsq*rinvsq
-            Vvdw6            = c6*rinvsix      
-            br               = cexp2*rsq11*rinv11
-            Vvdwexp          = cexp1*exp(-br)  
-            Vvdwtot          = Vvdwtot+Vvdwexp-Vvdw6
-
-C          Inner loop uses 64 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel430.f b/src/gmxlib/nonbonded/nb_kernel_f77_single/f77skernel430.f
deleted file mode 100644 (file)
index ff3fc2d..0000000
+++ /dev/null
@@ -1,515 +0,0 @@
-C
-C                This source code is part of
-C
-C                 G   R   O   M   A   C   S
-C
-C Copyright (c) 1991-2000, University of Groningen, The Netherlands.
-C Copyright (c) 2001-2009, The GROMACS Development Team
-C
-C Gromacs is a library for molecular simulation and trajectory analysis,
-C written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
-C a full list of developers and information, check out http://www.gromacs.org
-C
-C This program is free software; you can redistribute it and/or modify it under 
-C the terms of the GNU Lesser General Public License as published by the Free 
-C Software Foundation; either version 2 of the License, or (at your option) any 
-C later version.
-C As a special exception, you may use this file as part of a free software
-C library without restriction.  Specifically, if other files instantiate
-C templates or use macros or inline functions from this file, or you compile
-C this file and link it with other files to produce an executable, this
-C file does not by itself cause the resulting executable to be covered by
-C the GNU Lesser General Public License.  
-C
-C In plain-speak: do not worry about classes/macros/templates either - only
-C changes to the library have to be LGPL, not an application linking with it.
-C
-C To help fund GROMACS development, we humbly ask that you cite
-C the papers people have written on it - you can find them on the website!
-C
-
-C
-C Gromacs nonbonded kernel f77skernel430
-C Coulomb interaction:     Generalized-Born
-C VdW interaction:         Tabulated
-C water optimization:      No
-C Calculate forces:        yes
-C
-      subroutine f77skernel430(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        fscal,tx,ty,tz
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        FF
-      real*4        fijC
-      real*4        fijD,fijR
-      real*4        isai,isaj,isaprod,gbscale,vgb
-      real*4        dvdasum,dvdatmp,dvdaj,fgb
-      real*4        ix1,iy1,iz1,fix1,fiy1,fiz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          isai             = invsqrta(ii)    
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-          dvdasum          = 0               
-
-C        Clear i atom forces
-          fix1             = 0               
-          fiy1             = 0               
-          fiz1             = 0               
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            isaj             = invsqrta(jnr)   
-            isaprod          = isai*isaj       
-            qq               = iq*charge(jnr)  
-            vcoul            = qq*rinv11       
-            fscal            = vcoul*rinv11    
-            qq               = isaprod*(-qq)   
-            gbscale          = isaprod*gbtabscale
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Tabulated Generalized-Born interaction
-            dvdaj            = dvda(jnr)       
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*gbscale       
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-            Y                = GBtab(nnn)      
-            F                = GBtab(nnn+1)    
-            Geps             = eps*GBtab(nnn+2)
-            Heps2            = eps2*GBtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            vgb              = qq*VV           
-            fijC             = qq*FF*gbscale   
-            dvdatmp          = -0.5*(vgb+fijC*r)
-            dvdasum          = dvdasum + dvdatmp
-            dvda(jnr)        = dvdaj+dvdatmp*isaj*isaj
-            vctot            = vctot + vcoul   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw6            = c6*VV           
-            fijD             = c6*FF           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            FF               = Fp+Geps+2.0*Heps2
-            Vvdw12           = c12*VV          
-            fijR             = c12*FF          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-            fscal            = -((fijD+fijR)*tabscale+fijC-fscal)
-     &  *rinv11
-
-C          Calculate temporary vectorial force
-            tx               = fscal*dx11      
-            ty               = fscal*dy11      
-            tz               = fscal*dz11      
-
-C          Increment i atom force
-            fix1             = fix1 + tx       
-            fiy1             = fiy1 + ty       
-            fiz1             = fiz1 + tz       
-
-C          Decrement j atom force
-            faction(j3+0)    = faction(j3+0) - tx
-            faction(j3+1)    = faction(j3+1) - ty
-            faction(j3+2)    = faction(j3+2) - tz
-
-C          Inner loop uses 80 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-          faction(ii3+0)   = faction(ii3+0) + fix1
-          faction(ii3+1)   = faction(ii3+1) + fiy1
-          faction(ii3+2)   = faction(ii3+2) + fiz1
-          fshift(is3)      = fshift(is3)+fix1
-          fshift(is3+1)    = fshift(is3+1)+fiy1
-          fshift(is3+2)    = fshift(is3+2)+fiz1
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-          dvda(ii)         = dvda(ii) + dvdasum*isai*isai
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 13 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
-
-
-
-C
-C Gromacs nonbonded kernel f77skernel430nf
-C Coulomb interaction:     Generalized-Born
-C VdW interaction:         Tabulated
-C water optimization:      No
-C Calculate forces:        no
-C
-      subroutine f77skernel430nf(
-     &                          nri,
-     &                          iinr,
-     &                          jindex,
-     &                          jjnr,
-     &                          shift,
-     &                          shiftvec,
-     &                          fshift,
-     &                          gid,
-     &                          pos,
-     &                          faction,
-     &                          charge,
-     &                          facel,
-     &                          krf,
-     &                          crf,
-     &                          Vc,
-     &                          type,
-     &                          ntype,
-     &                          vdwparam,
-     &                          Vvdw,
-     &                          tabscale,
-     &                          VFtab,
-     &                          invsqrta,
-     &                          dvda,
-     &                          gbtabscale,
-     &                          GBtab,
-     &                          nthreads,
-     &                          count,
-     &                          mtx,
-     &                          outeriter,
-     &                          inneriter,
-     &                          work)
-      implicit      none
-      integer*4     nri,iinr(*),jindex(*),jjnr(*),shift(*)
-      real*4        shiftvec(*),fshift(*),pos(*),faction(*)
-      integer*4     gid(*),type(*),ntype
-      real*4        charge(*),facel,krf,crf,Vc(*),vdwparam(*)
-      real*4        Vvdw(*),tabscale,VFtab(*)
-      real*4        invsqrta(*),dvda(*),gbtabscale,GBtab(*)
-      integer*4     nthreads,count,mtx,outeriter,inneriter
-      real*4        work(*)
-
-      integer*4     n,ii,is3,ii3,k,nj0,nj1,jnr,j3,ggid
-      integer*4     nn0,nn1,nouter,ninner
-      real*4        shX,shY,shZ
-      real*4        iq
-      real*4        qq,vcoul,vctot
-      integer*4     nti
-      integer*4     tj
-      real*4        Vvdw6,Vvdwtot
-      real*4        Vvdw12
-      real*4        r,rt,eps,eps2
-      integer*4     n0,nnn
-      real*4        Y,F,Geps,Heps2,Fp,VV
-      real*4        isai,isaj,isaprod,gbscale,vgb
-      real*4        ix1,iy1,iz1
-      real*4        jx1,jy1,jz1
-      real*4        dx11,dy11,dz11,rsq11,rinv11
-      real*4        c6,c12
-
-
-C    Reset outer and inner iteration counters
-      nouter           = 0               
-      ninner           = 0               
-
-C    Loop over thread workunits
-   10 call f77kernelsync(mtx,count,nri,nthreads,nn0,nn1)
-        if(nn1.gt.nri) nn1=nri
-
-C      Start outer loop over neighborlists
-        
-        do n=nn0+1,nn1
-
-C        Load shift vector for this list
-          is3              = 3*shift(n)+1    
-          shX              = shiftvec(is3)   
-          shY              = shiftvec(is3+1) 
-          shZ              = shiftvec(is3+2) 
-
-C        Load limits for loop over neighbors
-          nj0              = jindex(n)+1     
-          nj1              = jindex(n+1)     
-
-C        Get outer coordinate index
-          ii               = iinr(n)+1       
-          ii3              = 3*ii-2          
-
-C        Load i atom data, add shift vector
-          ix1              = shX + pos(ii3+0)
-          iy1              = shY + pos(ii3+1)
-          iz1              = shZ + pos(ii3+2)
-
-C        Load parameters for i atom
-          iq               = facel*charge(ii)
-          isai             = invsqrta(ii)    
-          nti              = 2*ntype*type(ii)
-
-C        Zero the potential energy for this list
-          vctot            = 0               
-          Vvdwtot          = 0               
-
-C        Clear i atom forces
-          
-          do k=nj0,nj1
-
-C          Get j neighbor index, and coordinate index
-            jnr              = jjnr(k)+1       
-            j3               = 3*jnr-2         
-
-C          load j atom coordinates
-            jx1              = pos(j3+0)       
-            jy1              = pos(j3+1)       
-            jz1              = pos(j3+2)       
-
-C          Calculate distance
-            dx11             = ix1 - jx1       
-            dy11             = iy1 - jy1       
-            dz11             = iz1 - jz1       
-            rsq11            = dx11*dx11+dy11*dy11+dz11*dz11
-
-C          Calculate 1/r and 1/r2
-            rinv11           = 1.0/sqrt(rsq11) 
-
-C          Load parameters for j atom
-            isaj             = invsqrta(jnr)   
-            isaprod          = isai*isaj       
-            qq               = iq*charge(jnr)  
-            vcoul            = qq*rinv11       
-            qq               = isaprod*(-qq)   
-            gbscale          = isaprod*gbtabscale
-            tj               = nti+2*type(jnr)+1
-            c6               = vdwparam(tj)    
-            c12              = vdwparam(tj+1)  
-
-C          Tabulated Generalized-Born interaction
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*gbscale       
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 4*n0+1          
-            Y                = GBtab(nnn)      
-            F                = GBtab(nnn+1)    
-            Geps             = eps*GBtab(nnn+2)
-            Heps2            = eps2*GBtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            vgb              = qq*VV           
-            vctot            = vctot + vcoul   
-
-C          Calculate table index
-            r                = rsq11*rinv11    
-
-C          Calculate table index
-            rt               = r*tabscale      
-            n0               = rt              
-            eps              = rt-n0           
-            eps2             = eps*eps         
-            nnn              = 8*n0+1          
-
-C          Tabulated VdW interaction - dispersion
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw6            = c6*VV           
-
-C          Tabulated VdW interaction - repulsion
-            nnn              = nnn+4           
-            Y                = VFtab(nnn)      
-            F                = VFtab(nnn+1)    
-            Geps             = eps*VFtab(nnn+2)
-            Heps2            = eps2*VFtab(nnn+3)
-            Fp               = F+Geps+Heps2    
-            VV               = Y+eps*Fp        
-            Vvdw12           = c12*VV          
-            Vvdwtot          = Vvdwtot+ Vvdw6 + Vvdw12
-
-C          Inner loop uses 49 flops/iteration
-          end do
-          
-
-C        Add i forces to mem and shifted force list
-
-C        Add potential energies to the group for this list
-          ggid             = gid(n)+1        
-          Vc(ggid)         = Vc(ggid) + vctot
-          Vvdw(ggid)       = Vvdw(ggid) + Vvdwtot
-
-C        Increment number of inner iterations
-          ninner           = ninner + nj1 - nj0
-
-C        Outer loop uses 6 flops/iteration
-        end do
-        
-
-C      Increment number of outer iterations
-        nouter           = nouter + nn1 - nn0
-      if(nn1.lt.nri) goto 10
-
-C    Write outer/inner iteration count to pointers
-      outeriter        = nouter          
-      inneriter        = ninner          
-      return
-      end
-
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel010_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel010_f77_single.c
deleted file mode 100644 (file)
index b5973f9..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel010_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 010
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel010,F77SKERNEL010)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel010nf,F77SKERNEL010NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel010_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel010,F77SKERNEL010)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel010nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel010nf,F77SKERNEL010NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel010_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel010_f77_single.h
deleted file mode 100644 (file)
index cfc4e8a..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL010_F77S_H_
-#define _NBKERNEL010_F77S_H_
-
-/*! \file  nb_kernel010_f77_single.h
- *  \brief Nonbonded kernel 010 (LJ)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 010 with forces.
- *
- *  <b>Coulomb interaction:</b> No <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel010_f77_single
-                (int *         nri,        int *         iinr,     
-                 int *         jindex,     int *         jjnr,   
-                 int *         shift,      real *        shiftvec,
-                 real *        fshift,     int *         gid, 
-                 real *        pos,        real *        faction,
-                 real *        charge,     real *        facel,
-                 real *        krf,        real *        crf,  
-                 real *        Vc,         int *         type,   
-                 int *         ntype,      real *        vdwparam,
-                 real *        Vvdw,       real *        tabscale,
-                 real *        VFtab,      real *        invsqrta, 
-                 real *        dvda,       real *        gbtabscale,
-                 real *        GBtab,      int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real *        work);
-
-
-/*! \brief Nonbonded kernel 010 without forces.
- *
- *  <b>Coulomb interaction:</b> No <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel010nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real *        work);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL010_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel020_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel020_f77_single.c
deleted file mode 100644 (file)
index 07d4ec6..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel020_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 020
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel020,F77SKERNEL020)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel020nf,F77SKERNEL020NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel020_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel020,F77SKERNEL020)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel020nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel020nf,F77SKERNEL020NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel020_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel020_f77_single.h
deleted file mode 100644 (file)
index 369763b..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL020_F77S_H_
-#define _NBKERNEL020_F77S_H_
-
-/*! \file  nb_kernel020_f77_single.h
- *  \brief Nonbonded kernel 020 (Bham)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 020 with forces.
- *
- *  <b>Coulomb interaction:</b> No <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel020_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 020 without forces.
- *
- *  <b>Coulomb interaction:</b> No <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel020nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL020_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel030_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel030_f77_single.c
deleted file mode 100644 (file)
index ac5d8c2..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel030_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 030
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel030,F77SKERNEL030)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel030nf,F77SKERNEL030NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel030_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel030,F77SKERNEL030)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel030nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel030nf,F77SKERNEL030NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel030_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel030_f77_single.h
deleted file mode 100644 (file)
index ace52ad..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL030_F77S_H_
-#define _NBKERNEL030_F77S_H_
-
-/*! \file  nb_kernel030_f77_single.h
- *  \brief Nonbonded kernel 030 (Tab VdW)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 030 with forces.
- *
- *  <b>Coulomb interaction:</b> No <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel030_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 030 without forces.
- *
- *  <b>Coulomb interaction:</b> No <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel030nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL030_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel100_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel100_f77_single.c
deleted file mode 100644 (file)
index b919050..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel100_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 100
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel100,F77SKERNEL100)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel100nf,F77SKERNEL100NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel100_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel100,F77SKERNEL100)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel100nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel100nf,F77SKERNEL100NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel100_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel100_f77_single.h
deleted file mode 100644 (file)
index b40fb0e..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL100_F77S_H_
-#define _NBKERNEL100_F77S_H_
-
-/*! \file  nb_kernel100_f77_single.h
- *  \brief Nonbonded kernel 100 (Coul)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 100 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel100_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 100 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel100nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL100_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel101_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel101_f77_single.c
deleted file mode 100644 (file)
index 667918f..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel101_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 101
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel101,F77SKERNEL101)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel101nf,F77SKERNEL101NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel101_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel101,F77SKERNEL101)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel101nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel101nf,F77SKERNEL101NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel101_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel101_f77_single.h
deleted file mode 100644 (file)
index 0415552..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL101_F77S_H_
-#define _NBKERNEL101_F77S_H_
-
-/*! \file  nb_kernel101_f77_single.h
- *  \brief Nonbonded kernel 101 (Coul, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 101 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel101_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 101 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel101nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL101_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel102_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel102_f77_single.c
deleted file mode 100644 (file)
index 65a4d0e..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel102_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 102
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel102,F77SKERNEL102)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel102nf,F77SKERNEL102NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel102_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel102,F77SKERNEL102)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel102nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel102nf,F77SKERNEL102NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel102_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel102_f77_single.h
deleted file mode 100644 (file)
index b42a7e1..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL102_F77S_H_
-#define _NBKERNEL102_F77S_H_
-
-/*! \file  nb_kernel102_f77_single.h
- *  \brief Nonbonded kernel 102 (Coul, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 102 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel102_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 102 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel102nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL102_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel103_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel103_f77_single.c
deleted file mode 100644 (file)
index 4329304..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel103_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 103
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel103,F77SKERNEL103)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel103nf,F77SKERNEL103NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel103_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel103,F77SKERNEL103)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel103nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel103nf,F77SKERNEL103NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel103_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel103_f77_single.h
deleted file mode 100644 (file)
index d0c1040..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL103_F77S_H_
-#define _NBKERNEL103_F77S_H_
-
-/*! \file  nb_kernel103_f77_single.h
- *  \brief Nonbonded kernel 103 (Coul, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 103 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel103_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 103 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel103nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL103_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel104_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel104_f77_single.c
deleted file mode 100644 (file)
index 68e7f84..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel104_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 104
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel104,F77SKERNEL104)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel104nf,F77SKERNEL104NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel104_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel104,F77SKERNEL104)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel104nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel104nf,F77SKERNEL104NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel104_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel104_f77_single.h
deleted file mode 100644 (file)
index 7edb5b1..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL104_F77S_H_
-#define _NBKERNEL104_F77S_H_
-
-/*! \file  nb_kernel104_f77_single.h
- *  \brief Nonbonded kernel 104 (Coul, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 104 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel104_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 104 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel104nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL104_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel110_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel110_f77_single.c
deleted file mode 100644 (file)
index b1d4361..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel110_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 110
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel110,F77SKERNEL110)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel110nf,F77SKERNEL110NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel110_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel110,F77SKERNEL110)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel110nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel110nf,F77SKERNEL110NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel110_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel110_f77_single.h
deleted file mode 100644 (file)
index 5d9b59a..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL110_F77S_H_
-#define _NBKERNEL110_F77S_H_
-
-/*! \file  nb_kernel110_f77_single.h
- *  \brief Nonbonded kernel 110 (Coul + LJ)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 110 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel110_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 110 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel110nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL110_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel111_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel111_f77_single.c
deleted file mode 100644 (file)
index 6d9ea3a..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel111_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 111
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel111,F77SKERNEL111)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel111nf,F77SKERNEL111NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel111_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel111,F77SKERNEL111)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel111nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel111nf,F77SKERNEL111NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel111_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel111_f77_single.h
deleted file mode 100644 (file)
index 13b452a..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL111_F77S_H_
-#define _NBKERNEL111_F77S_H_
-
-/*! \file  nb_kernel111_f77_single.h
- *  \brief Nonbonded kernel 111 (Coul + LJ, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 111 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel111_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 111 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel111nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL111_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel112_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel112_f77_single.c
deleted file mode 100644 (file)
index bd287fc..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel112_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 112
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel112,F77SKERNEL112)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel112nf,F77SKERNEL112NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel112_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel112,F77SKERNEL112)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel112nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel112nf,F77SKERNEL112NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel112_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel112_f77_single.h
deleted file mode 100644 (file)
index f5cb1d6..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL112_F77S_H_
-#define _NBKERNEL112_F77S_H_
-
-/*! \file  nb_kernel112_f77_single.h
- *  \brief Nonbonded kernel 112 (Coul + LJ, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 112 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel112_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 112 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel112nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL112_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel113_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel113_f77_single.c
deleted file mode 100644 (file)
index f206386..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel113_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 113
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel113,F77SKERNEL113)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel113nf,F77SKERNEL113NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel113_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel113,F77SKERNEL113)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel113nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel113nf,F77SKERNEL113NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel113_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel113_f77_single.h
deleted file mode 100644 (file)
index 481305b..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL113_F77S_H_
-#define _NBKERNEL113_F77S_H_
-
-/*! \file  nb_kernel113_f77_single.h
- *  \brief Nonbonded kernel 113 (Coul + LJ, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 113 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel113_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 113 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel113nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL113_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel114_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel114_f77_single.c
deleted file mode 100644 (file)
index bf97928..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel114_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 114
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel114,F77SKERNEL114)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel114nf,F77SKERNEL114NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel114_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel114,F77SKERNEL114)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel114nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel114nf,F77SKERNEL114NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel114_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel114_f77_single.h
deleted file mode 100644 (file)
index afe13f7..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL114_F77S_H_
-#define _NBKERNEL114_F77S_H_
-
-/*! \file  nb_kernel114_f77_single.h
- *  \brief Nonbonded kernel 114 (Coul + LJ, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 114 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel114_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 114 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel114nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL114_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel120_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel120_f77_single.c
deleted file mode 100644 (file)
index 59998f6..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel120_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 120
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel120,F77SKERNEL120)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel120nf,F77SKERNEL120NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel120_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel120,F77SKERNEL120)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel120nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel120nf,F77SKERNEL120NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel120_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel120_f77_single.h
deleted file mode 100644 (file)
index d12de49..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL120_F77S_H_
-#define _NBKERNEL120_F77S_H_
-
-/*! \file  nb_kernel120_f77_single.h
- *  \brief Nonbonded kernel 120 (Coul + Bham)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 120 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel120_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 120 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel120nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL120_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel121_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel121_f77_single.c
deleted file mode 100644 (file)
index 551acb2..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel121_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 121
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel121,F77SKERNEL121)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel121nf,F77SKERNEL121NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel121_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel121,F77SKERNEL121)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel121nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel121nf,F77SKERNEL121NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel121_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel121_f77_single.h
deleted file mode 100644 (file)
index fbac8dc..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL121_F77S_H_
-#define _NBKERNEL121_F77S_H_
-
-/*! \file  nb_kernel121_f77_single.h
- *  \brief Nonbonded kernel 121 (Coul + Bham, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 121 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel121_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 121 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel121nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL121_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel122_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel122_f77_single.c
deleted file mode 100644 (file)
index 13bda5d..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel122_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 122
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel122,F77SKERNEL122)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel122nf,F77SKERNEL122NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel122_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel122,F77SKERNEL122)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel122nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel122nf,F77SKERNEL122NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel122_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel122_f77_single.h
deleted file mode 100644 (file)
index 2856fe9..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL122_F77S_H_
-#define _NBKERNEL122_F77S_H_
-
-/*! \file  nb_kernel122_f77_single.h
- *  \brief Nonbonded kernel 122 (Coul + Bham, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 122 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel122_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 122 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel122nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL122_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel123_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel123_f77_single.c
deleted file mode 100644 (file)
index 1c07c0f..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel123_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 123
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel123,F77SKERNEL123)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel123nf,F77SKERNEL123NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel123_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel123,F77SKERNEL123)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel123nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel123nf,F77SKERNEL123NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel123_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel123_f77_single.h
deleted file mode 100644 (file)
index e277ee1..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL123_F77S_H_
-#define _NBKERNEL123_F77S_H_
-
-/*! \file  nb_kernel123_f77_single.h
- *  \brief Nonbonded kernel 123 (Coul + Bham, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 123 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel123_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 123 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel123nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL123_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel124_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel124_f77_single.c
deleted file mode 100644 (file)
index 6c597d6..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel124_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 124
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel124,F77SKERNEL124)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel124nf,F77SKERNEL124NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel124_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel124,F77SKERNEL124)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel124nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel124nf,F77SKERNEL124NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel124_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel124_f77_single.h
deleted file mode 100644 (file)
index 014f358..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL124_F77S_H_
-#define _NBKERNEL124_F77S_H_
-
-/*! \file  nb_kernel124_f77_single.h
- *  \brief Nonbonded kernel 124 (Coul + Bham, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 124 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel124_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 124 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel124nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL124_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel130_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel130_f77_single.c
deleted file mode 100644 (file)
index d2adeeb..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel130_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 130
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel130,F77SKERNEL130)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel130nf,F77SKERNEL130NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel130_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel130,F77SKERNEL130)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel130nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel130nf,F77SKERNEL130NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel130_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel130_f77_single.h
deleted file mode 100644 (file)
index ca1aea8..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL130_F77S_H_
-#define _NBKERNEL130_F77S_H_
-
-/*! \file  nb_kernel130_f77_single.h
- *  \brief Nonbonded kernel 130 (Coul + Tab VdW)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 130 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel130_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 130 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel130nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL130_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel131_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel131_f77_single.c
deleted file mode 100644 (file)
index 5c28ae4..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel131_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 131
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel131,F77SKERNEL131)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel131nf,F77SKERNEL131NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel131_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel131,F77SKERNEL131)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel131nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel131nf,F77SKERNEL131NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel131_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel131_f77_single.h
deleted file mode 100644 (file)
index d4570a2..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL131_F77S_H_
-#define _NBKERNEL131_F77S_H_
-
-/*! \file  nb_kernel131_f77_single.h
- *  \brief Nonbonded kernel 131 (Coul + Tab VdW, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 131 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel131_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 131 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel131nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL131_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel132_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel132_f77_single.c
deleted file mode 100644 (file)
index 8df33a9..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel132_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 132
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel132,F77SKERNEL132)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel132nf,F77SKERNEL132NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel132_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel132,F77SKERNEL132)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel132nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel132nf,F77SKERNEL132NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel132_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel132_f77_single.h
deleted file mode 100644 (file)
index b803228..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL132_F77S_H_
-#define _NBKERNEL132_F77S_H_
-
-/*! \file  nb_kernel132_f77_single.h
- *  \brief Nonbonded kernel 132 (Coul + Tab VdW, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 132 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel132_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 132 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel132nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL132_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel133_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel133_f77_single.c
deleted file mode 100644 (file)
index 6920cf6..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel133_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 133
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel133,F77SKERNEL133)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel133nf,F77SKERNEL133NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel133_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel133,F77SKERNEL133)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel133nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel133nf,F77SKERNEL133NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel133_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel133_f77_single.h
deleted file mode 100644 (file)
index 0b041e8..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL133_F77S_H_
-#define _NBKERNEL133_F77S_H_
-
-/*! \file  nb_kernel133_f77_single.h
- *  \brief Nonbonded kernel 133 (Coul + Tab VdW, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 133 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel133_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 133 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel133nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL133_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel134_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel134_f77_single.c
deleted file mode 100644 (file)
index d696167..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel134_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 134
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel134,F77SKERNEL134)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel134nf,F77SKERNEL134NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel134_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel134,F77SKERNEL134)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel134nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel134nf,F77SKERNEL134NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel134_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel134_f77_single.h
deleted file mode 100644 (file)
index efcee19..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL134_F77S_H_
-#define _NBKERNEL134_F77S_H_
-
-/*! \file  nb_kernel134_f77_single.h
- *  \brief Nonbonded kernel 134 (Coul + Tab VdW, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 134 with forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel134_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 134 without forces.
- *
- *  <b>Coulomb interaction:</b> Standard 1/r <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel134nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL134_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel200_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel200_f77_single.c
deleted file mode 100644 (file)
index 14b93b4..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel200_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 200
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel200,F77SKERNEL200)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel200nf,F77SKERNEL200NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel200_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel200,F77SKERNEL200)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel200nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel200nf,F77SKERNEL200NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel200_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel200_f77_single.h
deleted file mode 100644 (file)
index 2db0225..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL200_F77S_H_
-#define _NBKERNEL200_F77S_H_
-
-/*! \file  nb_kernel200_f77_single.h
- *  \brief Nonbonded kernel 200 (RF Coul)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 200 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel200_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 200 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel200nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL200_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel201_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel201_f77_single.c
deleted file mode 100644 (file)
index 44c0539..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel201_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 201
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel201,F77SKERNEL201)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel201nf,F77SKERNEL201NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel201_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel201,F77SKERNEL201)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel201nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel201nf,F77SKERNEL201NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel201_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel201_f77_single.h
deleted file mode 100644 (file)
index e35d21b..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL201_F77S_H_
-#define _NBKERNEL201_F77S_H_
-
-/*! \file  nb_kernel201_f77_single.h
- *  \brief Nonbonded kernel 201 (RF Coul, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 201 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel201_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 201 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel201nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL201_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel202_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel202_f77_single.c
deleted file mode 100644 (file)
index c5a34e0..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel202_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 202
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel202,F77SKERNEL202)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel202nf,F77SKERNEL202NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel202_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel202,F77SKERNEL202)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel202nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel202nf,F77SKERNEL202NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel202_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel202_f77_single.h
deleted file mode 100644 (file)
index 4871e74..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL202_F77S_H_
-#define _NBKERNEL202_F77S_H_
-
-/*! \file  nb_kernel202_f77_single.h
- *  \brief Nonbonded kernel 202 (RF Coul, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 202 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel202_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 202 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel202nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL202_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel203_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel203_f77_single.c
deleted file mode 100644 (file)
index 3a69002..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel203_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 203
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel203,F77SKERNEL203)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel203nf,F77SKERNEL203NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel203_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel203,F77SKERNEL203)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel203nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel203nf,F77SKERNEL203NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel203_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel203_f77_single.h
deleted file mode 100644 (file)
index c706e05..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL203_F77S_H_
-#define _NBKERNEL203_F77S_H_
-
-/*! \file  nb_kernel203_f77_single.h
- *  \brief Nonbonded kernel 203 (RF Coul, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 203 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel203_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 203 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel203nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL203_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel204_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel204_f77_single.c
deleted file mode 100644 (file)
index 391eac2..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel204_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 204
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel204,F77SKERNEL204)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel204nf,F77SKERNEL204NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel204_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel204,F77SKERNEL204)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel204nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel204nf,F77SKERNEL204NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel204_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel204_f77_single.h
deleted file mode 100644 (file)
index 440b3bb..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL204_F77S_H_
-#define _NBKERNEL204_F77S_H_
-
-/*! \file  nb_kernel204_f77_single.h
- *  \brief Nonbonded kernel 204 (RF Coul, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 204 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel204_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 204 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel204nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL204_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel210_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel210_f77_single.c
deleted file mode 100644 (file)
index 09da1ad..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel210_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 210
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel210,F77SKERNEL210)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel210nf,F77SKERNEL210NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel210_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel210,F77SKERNEL210)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel210nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel210nf,F77SKERNEL210NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel210_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel210_f77_single.h
deleted file mode 100644 (file)
index 74df03f..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL210_F77S_H_
-#define _NBKERNEL210_F77S_H_
-
-/*! \file  nb_kernel210_f77_single.h
- *  \brief Nonbonded kernel 210 (RF Coul + LJ)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 210 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel210_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 210 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel210nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL210_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel211_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel211_f77_single.c
deleted file mode 100644 (file)
index 6230bd8..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel211_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 211
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel211,F77SKERNEL211)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel211nf,F77SKERNEL211NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel211_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel211,F77SKERNEL211)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel211nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel211nf,F77SKERNEL211NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel211_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel211_f77_single.h
deleted file mode 100644 (file)
index b43347c..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL211_F77S_H_
-#define _NBKERNEL211_F77S_H_
-
-/*! \file  nb_kernel211_f77_single.h
- *  \brief Nonbonded kernel 211 (RF Coul + LJ, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 211 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel211_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 211 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel211nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL211_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel212_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel212_f77_single.c
deleted file mode 100644 (file)
index 3720df1..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel212_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 212
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel212,F77SKERNEL212)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel212nf,F77SKERNEL212NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel212_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel212,F77SKERNEL212)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel212nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel212nf,F77SKERNEL212NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel212_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel212_f77_single.h
deleted file mode 100644 (file)
index 785858e..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL212_F77S_H_
-#define _NBKERNEL212_F77S_H_
-
-/*! \file  nb_kernel212_f77_single.h
- *  \brief Nonbonded kernel 212 (RF Coul + LJ, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 212 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel212_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 212 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel212nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL212_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel213_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel213_f77_single.c
deleted file mode 100644 (file)
index 1f9601d..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel213_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 213
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel213,F77SKERNEL213)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel213nf,F77SKERNEL213NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel213_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel213,F77SKERNEL213)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel213nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel213nf,F77SKERNEL213NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel213_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel213_f77_single.h
deleted file mode 100644 (file)
index 1945e64..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL213_F77S_H_
-#define _NBKERNEL213_F77S_H_
-
-/*! \file  nb_kernel213_f77_single.h
- *  \brief Nonbonded kernel 213 (RF Coul + LJ, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 213 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel213_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 213 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel213nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL213_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel214_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel214_f77_single.c
deleted file mode 100644 (file)
index 489bb0d..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel214_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 214
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel214,F77SKERNEL214)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel214nf,F77SKERNEL214NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel214_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel214,F77SKERNEL214)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel214nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel214nf,F77SKERNEL214NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel214_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel214_f77_single.h
deleted file mode 100644 (file)
index fa4bfae..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL214_F77S_H_
-#define _NBKERNEL214_F77S_H_
-
-/*! \file  nb_kernel214_f77_single.h
- *  \brief Nonbonded kernel 214 (RF Coul + LJ, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 214 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel214_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 214 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel214nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL214_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel220_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel220_f77_single.c
deleted file mode 100644 (file)
index 902e2a2..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel220_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 220
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel220,F77SKERNEL220)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel220nf,F77SKERNEL220NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel220_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel220,F77SKERNEL220)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel220nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel220nf,F77SKERNEL220NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel220_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel220_f77_single.h
deleted file mode 100644 (file)
index 7802591..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL220_F77S_H_
-#define _NBKERNEL220_F77S_H_
-
-/*! \file  nb_kernel220_f77_single.h
- *  \brief Nonbonded kernel 220 (RF Coul + Bham)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 220 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel220_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 220 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel220nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL220_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel221_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel221_f77_single.c
deleted file mode 100644 (file)
index 6d609ea..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel221_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 221
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel221,F77SKERNEL221)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel221nf,F77SKERNEL221NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel221_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel221,F77SKERNEL221)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel221nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel221nf,F77SKERNEL221NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel221_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel221_f77_single.h
deleted file mode 100644 (file)
index c4fe71a..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL221_F77S_H_
-#define _NBKERNEL221_F77S_H_
-
-/*! \file  nb_kernel221_f77_single.h
- *  \brief Nonbonded kernel 221 (RF Coul + Bham, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 221 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel221_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 221 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel221nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL221_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel222_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel222_f77_single.c
deleted file mode 100644 (file)
index 1c46679..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel222_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 222
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel222,F77SKERNEL222)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel222nf,F77SKERNEL222NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel222_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel222,F77SKERNEL222)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel222nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel222nf,F77SKERNEL222NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel222_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel222_f77_single.h
deleted file mode 100644 (file)
index f7d7574..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL222_F77S_H_
-#define _NBKERNEL222_F77S_H_
-
-/*! \file  nb_kernel222_f77_single.h
- *  \brief Nonbonded kernel 222 (RF Coul + Bham, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 222 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel222_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 222 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel222nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL222_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel223_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel223_f77_single.c
deleted file mode 100644 (file)
index 6240716..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel223_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 223
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel223,F77SKERNEL223)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel223nf,F77SKERNEL223NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel223_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel223,F77SKERNEL223)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel223nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel223nf,F77SKERNEL223NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel223_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel223_f77_single.h
deleted file mode 100644 (file)
index b80d0a0..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL223_F77S_H_
-#define _NBKERNEL223_F77S_H_
-
-/*! \file  nb_kernel223_f77_single.h
- *  \brief Nonbonded kernel 223 (RF Coul + Bham, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 223 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel223_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 223 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel223nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL223_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel224_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel224_f77_single.c
deleted file mode 100644 (file)
index b70d721..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel224_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 224
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel224,F77SKERNEL224)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel224nf,F77SKERNEL224NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel224_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel224,F77SKERNEL224)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel224nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel224nf,F77SKERNEL224NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel224_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel224_f77_single.h
deleted file mode 100644 (file)
index 9e10c47..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL224_F77S_H_
-#define _NBKERNEL224_F77S_H_
-
-/*! \file  nb_kernel224_f77_single.h
- *  \brief Nonbonded kernel 224 (RF Coul + Bham, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 224 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel224_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 224 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel224nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL224_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel230_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel230_f77_single.c
deleted file mode 100644 (file)
index aa7bb4c..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel230_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 230
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel230,F77SKERNEL230)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel230nf,F77SKERNEL230NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel230_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel230,F77SKERNEL230)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel230nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel230nf,F77SKERNEL230NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel230_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel230_f77_single.h
deleted file mode 100644 (file)
index 818d964..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL230_F77S_H_
-#define _NBKERNEL230_F77S_H_
-
-/*! \file  nb_kernel230_f77_single.h
- *  \brief Nonbonded kernel 230 (RF Coul + Tab VdW)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 230 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel230_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 230 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel230nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL230_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel231_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel231_f77_single.c
deleted file mode 100644 (file)
index 141fe56..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel231_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 231
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel231,F77SKERNEL231)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel231nf,F77SKERNEL231NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel231_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel231,F77SKERNEL231)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel231nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel231nf,F77SKERNEL231NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel231_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel231_f77_single.h
deleted file mode 100644 (file)
index 18efa9d..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL231_F77S_H_
-#define _NBKERNEL231_F77S_H_
-
-/*! \file  nb_kernel231_f77_single.h
- *  \brief Nonbonded kernel 231 (RF Coul + Tab VdW, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 231 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel231_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 231 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel231nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL231_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel232_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel232_f77_single.c
deleted file mode 100644 (file)
index 1ac6b16..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel232_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 232
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel232,F77SKERNEL232)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel232nf,F77SKERNEL232NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel232_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel232,F77SKERNEL232)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel232nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel232nf,F77SKERNEL232NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel232_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel232_f77_single.h
deleted file mode 100644 (file)
index f3cf1cd..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL232_F77S_H_
-#define _NBKERNEL232_F77S_H_
-
-/*! \file  nb_kernel232_f77_single.h
- *  \brief Nonbonded kernel 232 (RF Coul + Tab VdW, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 232 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel232_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 232 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel232nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL232_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel233_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel233_f77_single.c
deleted file mode 100644 (file)
index 0d92c40..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel233_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 233
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel233,F77SKERNEL233)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel233nf,F77SKERNEL233NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel233_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel233,F77SKERNEL233)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel233nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel233nf,F77SKERNEL233NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel233_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel233_f77_single.h
deleted file mode 100644 (file)
index daa5bbb..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL233_F77S_H_
-#define _NBKERNEL233_F77S_H_
-
-/*! \file  nb_kernel233_f77_single.h
- *  \brief Nonbonded kernel 233 (RF Coul + Tab VdW, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 233 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel233_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 233 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel233nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL233_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel234_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel234_f77_single.c
deleted file mode 100644 (file)
index 722d849..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel234_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 234
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel234,F77SKERNEL234)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel234nf,F77SKERNEL234NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel234_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel234,F77SKERNEL234)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel234nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel234nf,F77SKERNEL234NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel234_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel234_f77_single.h
deleted file mode 100644 (file)
index a68d24c..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL234_F77S_H_
-#define _NBKERNEL234_F77S_H_
-
-/*! \file  nb_kernel234_f77_single.h
- *  \brief Nonbonded kernel 234 (RF Coul + Tab VdW, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 234 with forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel234_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 234 without forces.
- *
- *  <b>Coulomb interaction:</b> Reaction-Field <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel234nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL234_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel300_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel300_f77_single.c
deleted file mode 100644 (file)
index 4dd1b6b..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel300_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 300
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel300,F77SKERNEL300)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel300nf,F77SKERNEL300NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel300_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel300,F77SKERNEL300)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel300nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel300nf,F77SKERNEL300NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel300_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel300_f77_single.h
deleted file mode 100644 (file)
index bc4a865..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL300_F77S_H_
-#define _NBKERNEL300_F77S_H_
-
-/*! \file  nb_kernel300_f77_single.h
- *  \brief Nonbonded kernel 300 (Tab Coul)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 300 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel300_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 300 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel300nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL300_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel301_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel301_f77_single.c
deleted file mode 100644 (file)
index 0d60816..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel301_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 301
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel301,F77SKERNEL301)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel301nf,F77SKERNEL301NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel301_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel301,F77SKERNEL301)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel301nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel301nf,F77SKERNEL301NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel301_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel301_f77_single.h
deleted file mode 100644 (file)
index fdc79f1..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL301_F77S_H_
-#define _NBKERNEL301_F77S_H_
-
-/*! \file  nb_kernel301_f77_single.h
- *  \brief Nonbonded kernel 301 (Tab Coul, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 301 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel301_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 301 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel301nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL301_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel302_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel302_f77_single.c
deleted file mode 100644 (file)
index b73cf2f..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel302_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 302
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel302,F77SKERNEL302)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel302nf,F77SKERNEL302NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel302_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel302,F77SKERNEL302)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel302nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel302nf,F77SKERNEL302NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel302_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel302_f77_single.h
deleted file mode 100644 (file)
index 05579f2..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL302_F77S_H_
-#define _NBKERNEL302_F77S_H_
-
-/*! \file  nb_kernel302_f77_single.h
- *  \brief Nonbonded kernel 302 (Tab Coul, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 302 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel302_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 302 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel302nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL302_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel303_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel303_f77_single.c
deleted file mode 100644 (file)
index e136c2f..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel303_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 303
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel303,F77SKERNEL303)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel303nf,F77SKERNEL303NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel303_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel303,F77SKERNEL303)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel303nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel303nf,F77SKERNEL303NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel303_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel303_f77_single.h
deleted file mode 100644 (file)
index 642cb2e..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL303_F77S_H_
-#define _NBKERNEL303_F77S_H_
-
-/*! \file  nb_kernel303_f77_single.h
- *  \brief Nonbonded kernel 303 (Tab Coul, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 303 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel303_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 303 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel303nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL303_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel304_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel304_f77_single.c
deleted file mode 100644 (file)
index 20f4dfb..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel304_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 304
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel304,F77SKERNEL304)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel304nf,F77SKERNEL304NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel304_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel304,F77SKERNEL304)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel304nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel304nf,F77SKERNEL304NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel304_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel304_f77_single.h
deleted file mode 100644 (file)
index 1cdabd6..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL304_F77S_H_
-#define _NBKERNEL304_F77S_H_
-
-/*! \file  nb_kernel304_f77_single.h
- *  \brief Nonbonded kernel 304 (Tab Coul, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 304 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel304_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 304 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel304nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL304_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel310_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel310_f77_single.c
deleted file mode 100644 (file)
index 827fbff..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel310_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 310
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel310,F77SKERNEL310)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel310nf,F77SKERNEL310NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel310_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel310,F77SKERNEL310)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel310nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel310nf,F77SKERNEL310NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel310_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel310_f77_single.h
deleted file mode 100644 (file)
index 61c21e3..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL310_F77S_H_
-#define _NBKERNEL310_F77S_H_
-
-/*! \file  nb_kernel310_f77_single.h
- *  \brief Nonbonded kernel 310 (Tab Coul + LJ)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 310 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel310_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 310 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel310nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL310_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel311_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel311_f77_single.c
deleted file mode 100644 (file)
index 00dd37e..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel311_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 311
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel311,F77SKERNEL311)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel311nf,F77SKERNEL311NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel311_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel311,F77SKERNEL311)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel311nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel311nf,F77SKERNEL311NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel311_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel311_f77_single.h
deleted file mode 100644 (file)
index d2ac282..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL311_F77S_H_
-#define _NBKERNEL311_F77S_H_
-
-/*! \file  nb_kernel311_f77_single.h
- *  \brief Nonbonded kernel 311 (Tab Coul + LJ, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 311 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel311_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 311 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel311nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL311_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel312_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel312_f77_single.c
deleted file mode 100644 (file)
index 2c58419..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel312_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 312
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel312,F77SKERNEL312)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel312nf,F77SKERNEL312NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel312_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel312,F77SKERNEL312)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel312nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel312nf,F77SKERNEL312NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel312_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel312_f77_single.h
deleted file mode 100644 (file)
index ab94790..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL312_F77S_H_
-#define _NBKERNEL312_F77S_H_
-
-/*! \file  nb_kernel312_f77_single.h
- *  \brief Nonbonded kernel 312 (Tab Coul + LJ, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" 
-{
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 312 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel312_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 312 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel312nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL312_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel313_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel313_f77_single.c
deleted file mode 100644 (file)
index 4f304b5..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel313_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 313
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel313,F77SKERNEL313)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel313nf,F77SKERNEL313NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel313_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel313,F77SKERNEL313)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel313nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel313nf,F77SKERNEL313NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel313_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel313_f77_single.h
deleted file mode 100644 (file)
index 2028279..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL313_F77S_H_
-#define _NBKERNEL313_F77S_H_
-
-/*! \file  nb_kernel313_f77_single.h
- *  \brief Nonbonded kernel 313 (Tab Coul + LJ, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 313 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel313_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 313 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel313nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL313_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel314_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel314_f77_single.c
deleted file mode 100644 (file)
index 9579ac5..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel314_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 314
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel314,F77SKERNEL314)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel314nf,F77SKERNEL314NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel314_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel314,F77SKERNEL314)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel314nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel314nf,F77SKERNEL314NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel314_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel314_f77_single.h
deleted file mode 100644 (file)
index a031979..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL314_F77S_H_
-#define _NBKERNEL314_F77S_H_
-
-/*! \file  nb_kernel314_f77_single.h
- *  \brief Nonbonded kernel 314 (Tab Coul + LJ, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 314 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel314_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 314 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel314nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL314_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel320_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel320_f77_single.c
deleted file mode 100644 (file)
index fd398cd..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel320_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 320
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel320,F77SKERNEL320)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel320nf,F77SKERNEL320NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel320_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel320,F77SKERNEL320)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel320nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel320nf,F77SKERNEL320NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel320_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel320_f77_single.h
deleted file mode 100644 (file)
index bd057ec..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL320_F77S_H_
-#define _NBKERNEL320_F77S_H_
-
-/*! \file  nb_kernel320_f77_single.h
- *  \brief Nonbonded kernel 320 (Tab Coul + Bham)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 320 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel320_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 320 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel320nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL320_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel321_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel321_f77_single.c
deleted file mode 100644 (file)
index c3375b8..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel321_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 321
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel321,F77SKERNEL321)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel321nf,F77SKERNEL321NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel321_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel321,F77SKERNEL321)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel321nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel321nf,F77SKERNEL321NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel321_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel321_f77_single.h
deleted file mode 100644 (file)
index ddb2167..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL321_F77S_H_
-#define _NBKERNEL321_F77S_H_
-
-/*! \file  nb_kernel321_f77_single.h
- *  \brief Nonbonded kernel 321 (Tab Coul + Bham, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 321 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel321_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 321 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel321nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL321_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel322_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel322_f77_single.c
deleted file mode 100644 (file)
index f4ad9e0..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel322_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 322
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel322,F77SKERNEL322)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel322nf,F77SKERNEL322NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel322_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel322,F77SKERNEL322)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel322nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel322nf,F77SKERNEL322NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel322_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel322_f77_single.h
deleted file mode 100644 (file)
index e5aa1cc..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL322_F77S_H_
-#define _NBKERNEL322_F77S_H_
-
-/*! \file  nb_kernel322_f77_single.h
- *  \brief Nonbonded kernel 322 (Tab Coul + Bham, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 322 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel322_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 322 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel322nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL322_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel323_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel323_f77_single.c
deleted file mode 100644 (file)
index 31c8666..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel323_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 323
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel323,F77SKERNEL323)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel323nf,F77SKERNEL323NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel323_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel323,F77SKERNEL323)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel323nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel323nf,F77SKERNEL323NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel323_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel323_f77_single.h
deleted file mode 100644 (file)
index d1ef769..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL323_F77S_H_
-#define _NBKERNEL323_F77S_H_
-
-/*! \file  nb_kernel323_f77_single.h
- *  \brief Nonbonded kernel 323 (Tab Coul + Bham, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 323 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel323_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 323 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel323nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL323_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel324_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel324_f77_single.c
deleted file mode 100644 (file)
index c460ec3..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel324_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 324
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel324,F77SKERNEL324)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel324nf,F77SKERNEL324NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel324_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel324,F77SKERNEL324)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel324nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel324nf,F77SKERNEL324NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel324_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel324_f77_single.h
deleted file mode 100644 (file)
index 806b717..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL324_F77S_H_
-#define _NBKERNEL324_F77S_H_
-
-/*! \file  nb_kernel324_f77_single.h
- *  \brief Nonbonded kernel 324 (Tab Coul + Bham, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 324 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel324_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 324 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel324nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL324_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel330_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel330_f77_single.c
deleted file mode 100644 (file)
index c2c7774..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel330_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 330
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel330,F77SKERNEL330)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel330nf,F77SKERNEL330NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel330_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel330,F77SKERNEL330)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel330nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel330nf,F77SKERNEL330NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel330_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel330_f77_single.h
deleted file mode 100644 (file)
index 81918c4..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL330_F77S_H_
-#define _NBKERNEL330_F77S_H_
-
-/*! \file  nb_kernel330_f77_single.h
- *  \brief Nonbonded kernel 330 (Tab Coul + Tab VdW)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 330 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel330_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 330 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel330nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL330_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel331_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel331_f77_single.c
deleted file mode 100644 (file)
index 08fd9c0..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel331_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 331
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel331,F77SKERNEL331)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel331nf,F77SKERNEL331NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel331_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel331,F77SKERNEL331)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel331nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel331nf,F77SKERNEL331NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel331_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel331_f77_single.h
deleted file mode 100644 (file)
index 66ee126..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL331_F77S_H_
-#define _NBKERNEL331_F77S_H_
-
-/*! \file  nb_kernel331_f77_single.h
- *  \brief Nonbonded kernel 331 (Tab Coul + Tab VdW, SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 331 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel331_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 331 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel331nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL331_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel332_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel332_f77_single.c
deleted file mode 100644 (file)
index d863510..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel332_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 332
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel332,F77SKERNEL332)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel332nf,F77SKERNEL332NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel332_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel332,F77SKERNEL332)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel332nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel332nf,F77SKERNEL332NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel332_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel332_f77_single.h
deleted file mode 100644 (file)
index 12dbba3..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL332_F77S_H_
-#define _NBKERNEL332_F77S_H_
-
-/*! \file  nb_kernel332_f77_single.h
- *  \brief Nonbonded kernel 332 (Tab Coul + Tab VdW, SPC-SPC)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 332 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel332_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 332 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> SPC - SPC <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel332nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL332_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel333_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel333_f77_single.c
deleted file mode 100644 (file)
index fbc27f5..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel333_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 333
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel333,F77SKERNEL333)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel333nf,F77SKERNEL333NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel333_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel333,F77SKERNEL333)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel333nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel333nf,F77SKERNEL333NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel333_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel333_f77_single.h
deleted file mode 100644 (file)
index 707d70f..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL333_F77S_H_
-#define _NBKERNEL333_F77S_H_
-
-/*! \file  nb_kernel333_f77_single.h
- *  \brief Nonbonded kernel 333 (Tab Coul + Tab VdW, TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 333 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel333_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 333 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - other atoms <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel333nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL333_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel334_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel334_f77_single.c
deleted file mode 100644 (file)
index 53d872a..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel334_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 334
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel334,F77SKERNEL334)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel334nf,F77SKERNEL334NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel334_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel334,F77SKERNEL334)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel334nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel334nf,F77SKERNEL334NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel334_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel334_f77_single.h
deleted file mode 100644 (file)
index a216717..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL334_F77S_H_
-#define _NBKERNEL334_F77S_H_
-
-/*! \file  nb_kernel334_f77_single.h
- *  \brief Nonbonded kernel 334 (Tab Coul + Tab VdW, TIP4p-TIP4p)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 334 with forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel334_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 334 without forces.
- *
- *  <b>Coulomb interaction:</b> Tabulated <br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> TIP4p - TIP4p <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel334nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL334_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel400_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel400_f77_single.c
deleted file mode 100644 (file)
index 291c79f..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel400_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 400
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel400,F77SKERNEL400)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel400nf,F77SKERNEL400NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel400_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel400,F77SKERNEL400)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel400nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel400nf,F77SKERNEL400NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel400_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel400_f77_single.h
deleted file mode 100644 (file)
index bc70aad..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL400_F77S_H_
-#define _NBKERNEL400_F77S_H_
-
-/*! \file  nb_kernel400_f77_single.h
- *  \brief Nonbonded kernel 400 (GB Coul)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 400 with forces.
- *
- *  <b>Coulomb interaction:</b> Generalized Born<br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel400_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 400 without forces.
- *
- *  <b>Coulomb interaction:</b> Generalized Born<br>
- *  <b>VdW interaction:</b> No <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel400nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL400_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel410_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel410_f77_single.c
deleted file mode 100644 (file)
index bc8439f..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel410_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 410
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel410,F77SKERNEL410)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel410nf,F77SKERNEL410NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel410_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel410,F77SKERNEL410)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel410nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel410nf,F77SKERNEL410NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel410_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel410_f77_single.h
deleted file mode 100644 (file)
index 888957c..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL410_F77S_H_
-#define _NBKERNEL410_F77S_H_
-
-/*! \file  nb_kernel410_f77_single.h
- *  \brief Nonbonded kernel 410 (GB Coul + LJ)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 410 with forces.
- *
- *  <b>Coulomb interaction:</b> Generalized Born<br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel410_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 410 without forces.
- *
- *  <b>Coulomb interaction:</b> Generalized Born<br>
- *  <b>VdW interaction:</b> Lennard-Jones <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel410nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL410_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel420_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel420_f77_single.c
deleted file mode 100644 (file)
index be72c7a..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel420_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 420
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel420,F77SKERNEL420)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel420nf,F77SKERNEL420NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel420_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel420,F77SKERNEL420)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel420nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel420nf,F77SKERNEL420NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel420_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel420_f77_single.h
deleted file mode 100644 (file)
index 19b76b8..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL420_F77S_H_
-#define _NBKERNEL420_F77S_H_
-
-/*! \file  nb_kernel420_f77_single.h
- *  \brief Nonbonded kernel 420 (GB Coul + Bham)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 420 with forces.
- *
- *  <b>Coulomb interaction:</b> Generalized Born<br>
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel420_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter);
-
-
-/*! \brief Nonbonded kernel 420 without forces.
- *
- *  \internal  Generated at compile time in either C or Fortran
- *  <b>VdW interaction:</b> Buckingham <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel420nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL420_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel430_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel430_f77_single.c
deleted file mode 100644 (file)
index 04640b7..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-/*! \file  nb_kernel430_f77_single.c
- *  \brief Wrapper for fortran nonbonded kernel 430
- *
- *  \internal
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef F77_FUNC
-#define F77_FUNC(name,NAME) name ## _
-#endif
-
-/* Declarations of Fortran routines. 
- * We avoid using underscores in F77 identifiers for portability! 
- */
-void
-F77_FUNC(f77skernel430,F77SKERNEL430)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-void
-F77_FUNC(f77skernel430nf,F77SKERNEL430NF)
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work);
-     
-
-void
-nb_kernel430_f77_single
-     (int *         nri,        int *         iinr,     
-      int *         jindex,     int *         jjnr,   
-      int *         shift,      float *       shiftvec,
-      float *       fshift,     int *         gid, 
-      float *       pos,        float *       faction,
-      float *       charge,     float *       facel,
-      float *       krf,        float *       crf,  
-      float *       Vc,         int *         type,   
-      int *         ntype,      float *       vdwparam,
-      float *       Vvdw,       float *       tabscale,
-      float *       VFtab,      float *       invsqrta, 
-      float *       dvda,       float *       gbtabscale,
-      float *       GBtab,      int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel430,F77SKERNEL430)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
-
-void
-nb_kernel430nf_f77_single
-     (int *         nri,        int           iinr[],     
-      int           jindex[],   int           jjnr[],   
-      int           shift[],    float         shiftvec[],
-      float         fshift[],   int           gid[], 
-      float         pos[],      float         faction[],
-      float         charge[],   float *       facel,
-      float *       krf,        float *       crf,  
-      float         Vc[],       int           type[],   
-      int *         ntype,      float         vdwparam[],
-      float         Vvdw[],     float *       tabscale,
-      float         VFtab[],    float         invsqrta[], 
-      float         dvda[],     float *       gbtabscale,
-      float         GBtab[],    int *         nthreads, 
-      int *         count,      void *        mtx,
-      int *         outeriter,  int *         inneriter,
-      float *       work)
-{
-  F77_FUNC(f77skernel430nf,F77SKERNEL430NF)
-    (nri,iinr,jindex,jjnr,shift,shiftvec,fshift,gid,pos,faction,
-     charge,facel,krf,crf,Vc,type,ntype,vdwparam,Vvdw,tabscale,
-     VFtab,invsqrta,dvda,gbtabscale,GBtab,nthreads,count,mtx,
-     outeriter,inneriter,work);
-}
-
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel430_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel430_f77_single.h
deleted file mode 100644 (file)
index 526d51a..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL430_F77S_H_
-#define _NBKERNEL430_F77S_H_
-
-/*! \file  nb_kernel430_f77_single.h
- *  \brief Nonbonded kernel 430 (GB Coul + Tab VdW)
- *
- *  \internal
- */
-
-#include "types/simple.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-
-/*! \brief Nonbonded kernel 430 with forces.
- *
- *  <b>Coulomb interaction:</b> Generalized Born<br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> Yes <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel430_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-/*! \brief Nonbonded kernel 430 without forces.
- *
- *  <b>Coulomb interaction:</b> Generalized Born<br>
- *  <b>VdW interaction:</b> Tabulated  <br>
- *  <b>Water optimization:</b> No <br>
- *  <b>Forces calculated:</b> No <br>
- *
- *  \note All level1 and level2 nonbonded kernels use the same
- *        call sequence. Parameters are documented in nb_kernel_f77_single.h
- */
-void
-nb_kernel430nf_f77_single
-                (int *         nri,        int           iinr[],     
-                 int           jindex[],   int           jjnr[],   
-                 int           shift[],    real          shiftvec[],
-                 real          fshift[],   int           gid[], 
-                 real          pos[],      real          faction[],
-                 real          charge[],   real *        facel,
-                 real *        krf,        real *        crf,  
-                 real          Vc[],       int           type[],   
-                 int *         ntype,      real          vdwparam[],
-                 real          Vvdw[],     real *        tabscale,
-                 real          VFtab[],    real          invsqrta[], 
-                 real          dvda[],     real *        gbtabscale,
-                 real          GBtab[],    int *         nthreads, 
-                 int *         count,      void *        mtx,
-                 int *         outeriter,  int *         inneriter,
-                 real          work[]);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NBKERNEL430_F77S_H_ */
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel_f77_single.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel_f77_single.c
deleted file mode 100644 (file)
index 4938731..0000000
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-
-#include "types/nrnb.h"
-#include "nb_kernel_f77_single.h"
-#include "../nb_kernel.h"
-
-
-/* Include standard kernel headers in local directory */
-#include "nb_kernel010_f77_single.h"
-#include "nb_kernel020_f77_single.h"
-#include "nb_kernel030_f77_single.h"
-#include "nb_kernel100_f77_single.h"
-#include "nb_kernel101_f77_single.h"
-#include "nb_kernel102_f77_single.h"
-#include "nb_kernel103_f77_single.h"
-#include "nb_kernel104_f77_single.h"
-#include "nb_kernel110_f77_single.h"
-#include "nb_kernel111_f77_single.h"
-#include "nb_kernel112_f77_single.h"
-#include "nb_kernel113_f77_single.h"
-#include "nb_kernel114_f77_single.h"
-#include "nb_kernel120_f77_single.h"
-#include "nb_kernel121_f77_single.h"
-#include "nb_kernel122_f77_single.h"
-#include "nb_kernel123_f77_single.h"
-#include "nb_kernel124_f77_single.h"
-#include "nb_kernel130_f77_single.h"
-#include "nb_kernel131_f77_single.h"
-#include "nb_kernel132_f77_single.h"
-#include "nb_kernel133_f77_single.h"
-#include "nb_kernel134_f77_single.h"
-#include "nb_kernel200_f77_single.h"
-#include "nb_kernel201_f77_single.h"
-#include "nb_kernel202_f77_single.h"
-#include "nb_kernel203_f77_single.h"
-#include "nb_kernel204_f77_single.h"
-#include "nb_kernel210_f77_single.h"
-#include "nb_kernel211_f77_single.h"
-#include "nb_kernel212_f77_single.h"
-#include "nb_kernel213_f77_single.h"
-#include "nb_kernel214_f77_single.h"
-#include "nb_kernel220_f77_single.h"
-#include "nb_kernel221_f77_single.h"
-#include "nb_kernel222_f77_single.h"
-#include "nb_kernel223_f77_single.h"
-#include "nb_kernel224_f77_single.h"
-#include "nb_kernel230_f77_single.h"
-#include "nb_kernel231_f77_single.h"
-#include "nb_kernel232_f77_single.h"
-#include "nb_kernel233_f77_single.h"
-#include "nb_kernel234_f77_single.h"
-#include "nb_kernel300_f77_single.h"
-#include "nb_kernel301_f77_single.h"
-#include "nb_kernel302_f77_single.h"
-#include "nb_kernel303_f77_single.h"
-#include "nb_kernel304_f77_single.h"
-#include "nb_kernel310_f77_single.h"
-#include "nb_kernel311_f77_single.h"
-#include "nb_kernel312_f77_single.h"
-#include "nb_kernel313_f77_single.h"
-#include "nb_kernel314_f77_single.h"
-#include "nb_kernel320_f77_single.h"
-#include "nb_kernel321_f77_single.h"
-#include "nb_kernel322_f77_single.h"
-#include "nb_kernel323_f77_single.h"
-#include "nb_kernel324_f77_single.h"
-#include "nb_kernel330_f77_single.h"
-#include "nb_kernel331_f77_single.h"
-#include "nb_kernel332_f77_single.h"
-#include "nb_kernel333_f77_single.h"
-#include "nb_kernel334_f77_single.h"
-#include "nb_kernel400_f77_single.h"
-#include "nb_kernel410_f77_single.h"
-#include "nb_kernel420_f77_single.h"
-#include "nb_kernel430_f77_single.h"
-
-
-static nb_kernel_t *
-kernellist[eNR_NBKERNEL_NR] = 
-{
-    nb_kernel010_f77_single,
-    nb_kernel020_f77_single,
-    nb_kernel030_f77_single,
-    nb_kernel100_f77_single,
-    nb_kernel101_f77_single,
-    nb_kernel102_f77_single,
-    nb_kernel103_f77_single,
-    nb_kernel104_f77_single,
-    nb_kernel110_f77_single,
-    nb_kernel111_f77_single,
-    nb_kernel112_f77_single,
-    nb_kernel113_f77_single,
-    nb_kernel114_f77_single,
-    nb_kernel120_f77_single,
-    nb_kernel121_f77_single,
-    nb_kernel122_f77_single,
-    nb_kernel123_f77_single,
-    nb_kernel124_f77_single,
-    nb_kernel130_f77_single,
-    nb_kernel131_f77_single,
-    nb_kernel132_f77_single,
-    nb_kernel133_f77_single,
-    nb_kernel134_f77_single,
-    nb_kernel200_f77_single,
-    nb_kernel201_f77_single,
-    nb_kernel202_f77_single,
-    nb_kernel203_f77_single,
-    nb_kernel204_f77_single,
-    nb_kernel210_f77_single,
-    nb_kernel211_f77_single,
-    nb_kernel212_f77_single,
-    nb_kernel213_f77_single,
-    nb_kernel214_f77_single,
-    nb_kernel220_f77_single,
-    nb_kernel221_f77_single,
-    nb_kernel222_f77_single,
-    nb_kernel223_f77_single,
-    nb_kernel224_f77_single,
-    nb_kernel230_f77_single,
-    nb_kernel231_f77_single,
-    nb_kernel232_f77_single,
-    nb_kernel233_f77_single,
-    nb_kernel234_f77_single,
-    nb_kernel300_f77_single,
-    nb_kernel301_f77_single,
-    nb_kernel302_f77_single,
-    nb_kernel303_f77_single,
-    nb_kernel304_f77_single,
-    nb_kernel310_f77_single,
-    nb_kernel311_f77_single,
-    nb_kernel312_f77_single,
-    nb_kernel313_f77_single,
-    nb_kernel314_f77_single,
-    nb_kernel320_f77_single,
-    nb_kernel321_f77_single,
-    nb_kernel322_f77_single,
-    nb_kernel323_f77_single,
-    nb_kernel324_f77_single,
-    nb_kernel330_f77_single,
-    nb_kernel331_f77_single,
-    nb_kernel332_f77_single,
-    nb_kernel333_f77_single,
-    nb_kernel334_f77_single,
-    nb_kernel400_f77_single,
-    nb_kernel410_f77_single,
-    nb_kernel430_f77_single,
-       nb_kernel010nf_f77_single,
-    nb_kernel020nf_f77_single,
-    nb_kernel030nf_f77_single,
-    nb_kernel100nf_f77_single,
-    nb_kernel101nf_f77_single,
-    nb_kernel102nf_f77_single,
-    nb_kernel103nf_f77_single,
-    nb_kernel104nf_f77_single,
-    nb_kernel110nf_f77_single,
-    nb_kernel111nf_f77_single,
-    nb_kernel112nf_f77_single,
-    nb_kernel113nf_f77_single,
-    nb_kernel114nf_f77_single,
-    nb_kernel120nf_f77_single,
-    nb_kernel121nf_f77_single,
-    nb_kernel122nf_f77_single,
-    nb_kernel123nf_f77_single,
-    nb_kernel124nf_f77_single,
-    nb_kernel130nf_f77_single,
-    nb_kernel131nf_f77_single,
-    nb_kernel132nf_f77_single,
-    nb_kernel133nf_f77_single,
-    nb_kernel134nf_f77_single,
-    nb_kernel200nf_f77_single,
-    nb_kernel201nf_f77_single,
-    nb_kernel202nf_f77_single,
-    nb_kernel203nf_f77_single,
-    nb_kernel204nf_f77_single,
-    nb_kernel210nf_f77_single,
-    nb_kernel211nf_f77_single,
-    nb_kernel212nf_f77_single,
-    nb_kernel213nf_f77_single,
-    nb_kernel214nf_f77_single,
-    nb_kernel220nf_f77_single,
-    nb_kernel221nf_f77_single,
-    nb_kernel222nf_f77_single,
-    nb_kernel223nf_f77_single,
-    nb_kernel224nf_f77_single,
-    nb_kernel230nf_f77_single,
-    nb_kernel231nf_f77_single,
-    nb_kernel232nf_f77_single,
-    nb_kernel233nf_f77_single,
-    nb_kernel234nf_f77_single,
-    nb_kernel300nf_f77_single,
-    nb_kernel301nf_f77_single,
-    nb_kernel302nf_f77_single,
-    nb_kernel303nf_f77_single,
-    nb_kernel304nf_f77_single,
-    nb_kernel310nf_f77_single,
-    nb_kernel311nf_f77_single,
-    nb_kernel312nf_f77_single,
-    nb_kernel313nf_f77_single,
-    nb_kernel314nf_f77_single,
-    nb_kernel320nf_f77_single,
-    nb_kernel321nf_f77_single,
-    nb_kernel322nf_f77_single,
-    nb_kernel323nf_f77_single,
-    nb_kernel324nf_f77_single,
-    nb_kernel330nf_f77_single,
-    nb_kernel331nf_f77_single,
-    nb_kernel332nf_f77_single,
-    nb_kernel333nf_f77_single,
-    nb_kernel334nf_f77_single,
-    nb_kernel400nf_f77_single,
-    nb_kernel410nf_f77_single,
-    nb_kernel430nf_f77_single,
-};
-
-
-void
-nb_kernel_setup_f77_single(FILE *log,nb_kernel_t **list)
-{
-  int i;
-  nb_kernel_t *p;
-
-  if(log)
-    fprintf(log,"Configuring single precision Fortran kernels...\n");
-
-  for(i=0;i<eNR_NBKERNEL_NR;i++)
-  {
-    p = kernellist[i];
-    if(p!=NULL)
-      list[i] = p; 
-  }
-}    
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel_f77_single.h b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel_f77_single.h
deleted file mode 100644 (file)
index 0b3ed06..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-#ifndef _NBKERNEL_F77S_H_
-#define _NBKERNEL_F77S_H_
-
-/** The vanilla nonbonded Gromacs kernels (portable, written in C).
- * 
- *  \file  nb_kernel_f77_single.h
- *
- *  \internal
- */
-
-#include <stdio.h>
-
-#include "../nb_kernel.h"
-
-void
-nb_kernel_setup_f77_single(FILE *fplog,nb_kernel_t **list);
-
-#endif /* _NBKERNEL_F77S_H_ */
-
diff --git a/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel_f77sync.c b/src/gmxlib/nonbonded/nb_kernel_f77_single/nb_kernel_f77sync.c
deleted file mode 100644 (file)
index cc18753..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- *                This source code is part of
- *
- *                 G   R   O   M   A   C   S
- *
- * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2009, The GROMACS Development Team
- *
- * Gromacs is a library for molecular simulation and trajectory analysis,
- * written by Erik Lindahl, David van der Spoel, Berk Hess, and others - for
- * a full list of developers and information, check out http://www.gromacs.org
- *
- * This program is free software; you can redistribute it and/or modify it under 
- * the terms of the GNU Lesser General Public License as published by the Free 
- * Software Foundation; either version 2 of the License, or (at your option) any 
- * later version.
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU Lesser General Public License.  
- *
- * In plain-speak: do not worry about classes/macros/templates either - only
- * changes to the library have to be LGPL, not an application linking with it.
- *
- * To help fund GROMACS development, we humbly ask that you cite
- * the papers people have written on it - you can find them on the website!
- */
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifdef HAVE_PTHREAD_H
-#include <pthread.h>
-#endif
-
-#include <stdio.h>
-
-/*! \brief Lock innerloop mutex and read lists indices
- *
- *  \internal
- *
- *  This routine is only used when both Fortran innerloops
- *  and threads are enabled.
- *
- *  Since the Fortran77 standard does not include support
- *  for POSIX threads, we call this routine instead which
- *
- *    -  Locks the provided mutex
- *    -  Reads the counter from memory
- *    -  Advances the counter in successively smaller chunks
- *    -  Releases the mutex
- *
- *  In other words, it performs exactly the same action as
- *  we do natively in the nonbonded kernel outer loop 
- *  when using C language for the kernels.
- *
- * Fortran does not know anything about a mutex, but since
- * arguments are passed by reference we mask it as a pointer
- * to an integer in the Fortran code.
- *
- * \param mtx       Pointer to the mutex to use, masked as int
- * \param count     Pointer to the outer loop counter
- * \param nri       Total umber of (outer loop) neighborlists
- * \param nthreads  Number of working threads
- * \param nn0       Returned value: Low index to use for outerloop 
- * \param nn1       Returned value: High index to use for outerloop
- *
- * \warning There is one possible cause of problems. Some
- *          fortran compilers make all variables static by
- *          default, and that will obviously screw up
- *          multithreading in a major way. If your Fortran
- *          compiler does this you only have two alternatives:
- *          Either find the flag to turn it off, or compile
- *          Gromacs without any Fortran nonbonded kernels.
- */
-void 
-F77_FUNC(f77kernelsync,F77KERNELSYNC)
-     (int *       mtx,
-      int *       count,
-      int *       nri,
-      int *       nthreads,
-      int *       nn0,
-      int *       nn1)
-{
-  int n0,n1;
-        
-    
-#ifdef HAVE_PTHREADS_H  
-  pthread_mutex_lock((pthread_mutex_t *)mtx);
-#endif
-  n0              = *count;
-  /* Take successively smaller chunks */
-  n1              = n0+((*nri)-n0)/(2*(*nthreads))+3;
-  *count          = n1;
-#ifdef HAVE_PTHREADS_H
-  pthread_mutex_unlock((pthread_mutex_t *)mtx);
-#endif
-  *nn0            = n0;
-  *nn1            = n1;
-}